windows下载安装openssl
http://slproweb.com/products/Win32OpenSSL.html
windows证书的生成
安装成功后命令行执行
1.私钥,生成的文件默认在系统用户目录下
openssl genrsa -des3 -out server.key 2048
2.生成csr文件(签署申请文件)【生成证书请求文件CSR】该命令先进入交互模式,让你填一堆东西,参考下图
openssl req -new -out server.csr -key server.key
要注意的是Common Name这里,要填写成使用SSL证书(即:https协议)的域名或主机名,否则浏览器会认为不安全。例如:如果以后打算用https://study.dev/xxx 这里就填写study.dev
3.生成CA的key文件【生成CA的证书】
前面提过X.509证书的认证者总是CA或由CA指定的人,所以得先生成一个CA的证书
openssl req -new -x509 -key server.key -out ca.crt -days 3650
4.最后用第3步的CA证书给自己颁发一个证书玩玩
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
执行完以后,cert目录下server.crt 就是我们需要的证书。当然,如果要在google等浏览器显示出安全的绿锁标志,自己颁发的证书肯定不好使,得花钱向第三方权威证书颁发机构申请(即:第4步是交给权威机构来做,我们只需要提交server.csr,哦,还有毛爷爷就好了)
apache配置证书
1.apache配置文件中对应域名配置里面加入ssl证书配置的内容
<VirtualHost *:80>
ServerAdmin v_lihuan1@xdf.cn
DocumentRoot "D:/www/htdocs"
ServerName study.dev
ServerAlias study.dev
ErrorLog "logs/study.dev-error.log"
CustomLog "logs/study.dev-access.log" common
<Directory />
Options FollowSymLinks
AllowOverride All
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>
</VirtualHost>
2.讲生成好的证书文件放在apache的对应目录下
3.修改对应的ssl配置文件(extra目录下的)
<VirtualHost _default_:443>
DocumentRoot "D:/www/htdocs"
ServerName study.dev:443
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
SSLCertificateChainFile conf/ssl.crt/server.crt
</VirtualHost>
4.重启apache(确保HOST文件已经添加了对应的域名)