1.安装必要的软件
引用
我用的是apahce2.0.61版,可以直接官方提供的绑定openssl的apache.
文件名是:apache_2.0.61-win32-x86-openssl-0.9.7m.msi
否则单独安装windows下的openssl比较麻烦,要么找到一个第三方的编译结果,要么自己编译
2. 生成服务器证书
引用
安装好在bin目录下有一个 openssl.exe文件,用来生成证书和密钥。
1). 生成服务器用的私钥文件server.key
进入conf目录,执行命令行
openssl genrsa -out server.key 1024
有文档指出使用 openssl genrsa -des3 -out server.key 1024 生成私钥文件,这样生成的私钥文件是需要口令的。
Apache启动失败,错误提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....)
原因是window下的apache不支持加密的私钥文件。
2). 生成未签署的server.csr
进入conf目录,执行命令行
openssl req -new -key server.key -out server.csr -config openssl.cnf
提示输入一系列的参数,
......
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
.....
注:Common Name必须和httpd.conf中server name必须一致,否则apache不能启动
启动apache时错误提示为:RSA server certificate CommonName (CN) `Koda' does NOT match server name!?
3). 签署服务器证书文件server.crt
进入conf目录,执行命令行
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
以上签署证书仅仅做测试用,真正运行的时候,应该将CSR发送到一个CA返回真正的用书.网上有些文档描述生成证书文件的过程比较繁琐,就是因为
他们自己建立了一个CA中心证书,然后再签署server.csr.
用openssl x509 -noout -text -in server.crt可以查看证书的内容。证书实际上包含了Public Key.
3. 配置httpd.conf.
引用
在conf目录下的ssl.conf文件是关于ssl的配置,是httpd.conf的一部分。
找到一个443的虚拟主机配置项,如下:
<VirtualHost _default_:443>
SSLEngine On
SSLCertificateFile conf/ssl.crt/server.crt
SSLCertificateKeyFile conf/ssl.key/server.key
#SSLCertificateChainFile conf/ssl.crt/ca.crt // 暂未启用
#......
DocumentRoot "C:/programs/Apache2/htdocs"
ServerName www.my.com:443
</VirtualHost>
1). 看SSLCertificateFile,SSLCertificateKeyFile两个配置项,所以应该在conf下建立两个子目录ssl.crt, ssl.key,然后把签署过的证书文件(.crt)和私钥文件(.key)放在相应的目录
2). 看DocumentRoot,ServerName配置项,ServerName修改为任意你想要得域名,注意:前面生成.csr时输入的Common Name必须于这里的ServerName项一致。
这样启动apache后,访问https://www.my.com将访问C:/programs/Apache2/htdocs目录下的内容。
但是如果你想保留其他目录的访问仍然是http,那么你应该把
<VirtualHost _default_:443> 也改为 <VirtualHost www.my.com:443>
此时,即便ServerName是任意的,系统仍然正常运行,仅仅Apache log提示"does NOT match server name"
3). 移除注释行
LoadModule ssl_module modules/mod_ssl.so
注意到ssl.conf的配置都在标签<IfDefine SSL>中,所以为了使IfDefine 指令有效,运行apache 的时候要加上 -D SSL 参数。
引用
apache -D SSL -k start
Apache SSL服务器配置SSL详解
2021-02-28 23:00服务器技术网 WEB服务器
Apache SSL服务器配置SSL详解,需要的朋友可以参考下。
延伸 · 阅读
- 2022-03-10Apache访问日志的配置与使用
- 2022-03-10使用Apache commons-cli包进行命令行参数解析的示例
- 2022-03-09Ubuntu 16.04与Apache虚拟主机配置的步骤详解
- 2022-03-06Ubuntu14.04服务器环境下配置PHP7.0+Apache2+Mysql5.7的方
- 2022-03-06CentOS 7中 Apache Web 服务器安装配置教程
- 2022-03-05Nginx配置ssl实现https的全过程记录
- WEB服务器
云的服务器搭建web
云的服务器搭建web 引言 在当今信息技术快速发展的时代, 云服务器 已成为许多企业和个人选择的首选,尤其是在Web应用程序的开发和部署中。云服务器提...
- WEB服务器
Bt(宝塔面板)忘记用户名密码的具体情况分析和解决应对
这篇文章主要为大家详细介绍了Bt(宝塔面板)忘记用户名密码的具体情况分析和解决应对,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的...
- WEB服务器
江苏web服务器托管云主机
江苏web 服务器托管 云主机 云计算是近年来快速发展的一个概念,它已经成为了很多企业的首选解决方案。云计算的核心思想是将计算资源、存储资源和网...
- WEB服务器
贵州web服务器内存云空间
贵州web服务器内存云空间 贵州是中国内地的一个省份,也是中国最大的养生之地,其优美的山水和丰富的地质资源让这里成为了一个备受瞩目的旅游胜地。...
- WEB服务器
阿里云svnweb服务器
阿里云 Subversion(简称 SVN)是一个版本控制系统,可帮助团队管理代码并进行版本控制。与传统的代码管理方式相比,它具有更好的版本追踪、可控性、协...
- WEB服务器
湖北web服务器租用云服务器
湖北省是我国的一个经济大省,有着丰富的资源和人才,同时也拥有着广泛的网络基础设施,其中包括众多的 Web 服务器。这些 Web 服务器在过去几年中一直...
- WEB服务器
web实时语音云服务器
Web实时语音 云服务器 (Real-Time Voice Cloud Server for Web) 摘要: 随着互联网技术的快速发展,越来越多的应用场景需要实时语音通信功能。而Web实时语音云服...
- WEB服务器
宝塔面板迁移系统盘/www到数据盘/data
如果是纯净系统还没安装宝塔面板,直接连接终端不墨迹,命令搞起来: 第一步:进入data目录(data是数据盘名称,有很多是home,你的数据盘名称是什么就...