前面为 tomcat 配置好了证书,接下来就是为 apache 配置证书。
这里先声明几点,第一,很多教程都是先配置 apache 再来生成证书,其实不用,证书用前面生成好的就可以,只要在 apache 中添加几行代码就行了。第二,证书有很多不同的表现形式,在 windows 下看后缀就可以了,甚至很多都是可以替换使用的,具体的关于证书后缀的内容可以看这篇文章:证书后缀
接下来就来配置 apache,首先配置 httpd.conf(怎么打开 httpd.conf),在里面将两个注释去掉,就是去掉前面的 #
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-mpm.conf
之后就是重头戏了,就是为 apache 设置证书路径,用前面生成的证书就可以了,如果你是别的形式,可以参考上面的证书后缀,只要是证书就可以了,后缀没关系的。接下来就是修改 httpd-ssl.conf 。
添加的内容如下:
SSLCertificateFile "C:/CA/openssl-1.0.2h/server3/server-cert.pem" //服务器自签名证书
SSLCertificateKeyFile "C:/CA/openssl-1.0.2h/server3/server-key.pem" //服务器私钥文件
SSLCACertificateFile "C:/CA/openssl-1.0.2h/ca/ca-cert.pem"<span style="white-space:pre"> </span> //ca中心自签名文件
如果你是跟着我搭建的话,那么这些文件后缀是没问题的,但是如果你的后缀是别的,例如不是 pem,而是 crt 等,那也没问题,重点在于你生成的这个文件是证书请求,服务器能接受的 p12 形式还是自签名证书,上面的 server-cert.crt 跟 server-cert.pem 是一样的。还有这个默认端口一般是 443。
还有一点,自建 ca 开启 https 之后,你就不能从网上直接引用 css 以及 js,jQuery 的资源,服务器会提醒你引用“未经过验证的资源脚本”。所以你引用的资源都要加载到本地才行。举个例子:
如果强制加载就会出现警告字样:
但是以 http 方式加载页面就不会问题:
所以只能将资源下载到本地,我使用的是 thinkphp 3.2.3,所以将这些资源放在 Public 目录下: