设置apache服务器的访问证书,支持https访问,windows

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文件已经添加了对应的域名)

posted @ 2019-07-05 15:12  芭菲雨  阅读(563)  评论(0编辑  收藏  举报