windows Apache 配置支持HTTPS的SSL证书
1.安装apache,下载带有ssl版本的apache安装程序。
( 本次实验用的是 apache_2.2.8-win32-x86-openssl-0.9.8g.msi程序包.)
2.安装完apache之后,检查apache目录下是否有以下文件:
[Apache安装目录]/modules/ mod_ssl.so
[Apache安装目录]/bin/ openssl.exe, libeay32.dll, ssleay32.dll, openssl.cnf
[Apache安装目录]/conf/ openssl.cnf
*(一般bin下没有openssl.cnf,把conf下的Openssl.cnf拷贝过去)
3.打开cmd,进入apache安装目录bin下:
步骤一:
执行命令: openssl genrsa 1024 >server.key (RSA密钥对的默认长度是1024,取值是2的整数次方,并且密钥长度约长,安全性相对会高点.)
步骤二:
生产为签署的server.csr
执行命令:openssl req -new -config openssl.cnf -key server.key >server.csr
(如果不加-config openssl.cnf参数的话,常会报Unable to load config info from .../ssl/openssl.cnf)
执行完此条命令,会要求输入一系列参数:
country Name (2 letter code) [AU]:CN ISO 国家代码(只支持两位字符)
State or Province Name (full name) [Some-State]:ZJ 所在省份
Locality Name (eg, city) []:HZ 所在城市
Organization Name (eg, company): 公司名称
Organizational Unit Name (eg, section) []: 组织名称
Common Name (eg, YOUR name) []: 申请证书的域名(必须和httpd.conf中serverName必须一致)
Email Address []:[email protected] 管理员邮箱
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: 交换密钥
An optional company name []:
注:Common Name必须和httpd.conf中serverName必须一致,否则apache不能启动(启动 apache 时错误提示为:server RSA certificate CommonName (CN) `Kedou' does NOT match server name!? )
完成签署的server.csr配置。
步骤三:
签署服务器证书文件 server.crt
执行命令:openssl req -x509 -days 5000 -config openssl.cnf -key server.key -in server.csr >server.crt
(说明:这是用步骤 1,2 的的密钥和证书请求生成证书 server.crt,-days 参数 指明证书有效期,单位为天,x509 表示生成的为 X.509 证书。)
步骤四:
在bin 目录下,找到tian_server.crt、tian_server.csr、tian_server.key三个文件,将此三个文件剪切到Apache的conf目录下。
步骤五:
编辑配置文件httpd.conf ,找到下列两行,删除注释。
loadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf (注:改成httpd-ssl.conf)
步骤六:
修改apache安装目录下,conf\extra ,编辑httpd_ssl_conf
SSLCertificateFile E:\apache\conf\key\server.crt (服务器证书的位置)
SSLCertificateKeyFile E:\apache\conf\key\server.key (服务器私钥的位置)
重启apache,访问https://localhost 即可。
最后,我只想说,特么哒,本人做这个实验做了好几遍,最后发现,443端口被占用,简直就是醉了。。。
最后容我再说一句,注意其中修改的几个小细节,否则真的是痛苦万分。