首先,为了方便大家参考,我先po一下环境信息。
操作系统为Windows Server 2019 64位
wampserver版本为3.2.0
wamp内嵌的Apache版本为2.4.41
首先下载证书。进入SSL证书管理器,点击下载
根据阿里云官方文档的说明,在Apache根目录下创建一个cert文件夹,并将下载的三个文件复制粘贴进去
然后打开httpd.conf文件,将下面两行前面的#号注释掉
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
这个时候不必着急重新启动服务器,因为此时虽然include了httpd-ssl.conf配置文件,该文件还没有配置,一般都会报错导致Apache无法正常启动。笔者在此走了些弯路。
然后找到conf/extra文件夹的httpd-ssl.conf文件,复制一个作为备份,免得不小心改坏了无力回天。
然后打开文件,将其代码删除,写入以下代码
listen 443
<VirtualHost *:443>
DocumentRoot "${INSTALL_DIR}/www"
ServerName www.example.com
SSLEngine on
SSLCertificateFile "C:/wamp64/bin/apache/apache2.4.41/cert/examplee_public.crt"
SSLCertificateKeyFile "C:/wamp64/bin/apache/apache2.4.41/cert/example.key"
SSLCertificateChainFile "C:/wamp64/bin/apache/apache2.4.41/cert/examplee_chain.crt"
# SSLProtocol all -SSLv2 -SSLv3 添加SSL协议支持协议,去掉不安全的协议。
# SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM 修改加密套件。
# SSLHonorCipherOrder on
</VirtualHost>
<Directory "${INSTALL_DIR}/www">
Options -Indexes +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
<VirtualHost>
里的最后注释的三句是阿里云官方文档的语句,但是我的环境下加上之后反而会报错,不加的话才正常,大家可以根据具体情况选择是否加。
文件路径和地址在实际使用时可以替换为自己的路径选择。
<Directory>
可以写进<VirtualHost>
,也可以写在它外面,根据自己的运行是否正常来选择。
然后重启服务器,发现可以用https访问啦
如果想增加HTTP请求自动跳转HTTPS,阿里云文档是说在httpd.conf里修改<VirtualHost>
,但是笔者发现自己的httpd.conf里并没有<VirtualHost>
,而这个语句的形式反而类似于httpd-vhosts.conf里设置虚拟域名的语句,于是我就在httpd-vhosts.conf里对应的地方加入了下面的语句
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
加入之后的代码为
再重启服务器,可以发现http访问也OK啦!