Last Updated: 2023-09-03 00:27:49 Sunday
-- TOC --
让Apache支持HTTPS,首先需要有证书,幸运的是,现在已经可以长期免费获得用于网站的CA证书。
为什么一定要上HTTPS?
虽然网站可能全部都是静态信息,也不会去获取任何客户的信息,甚至连留言功能都没有,那为什么还要上HTTPS呢?因为,如果没有HTTPS,那些奇奇怪怪的浏览器,或篡改网页内容,插入各种垃圾广告!同时,有HTTPS,能够讨好用户和搜索引擎。
Apache支持HTTPS的配置
1, 在httpd.conf
中打开module_ssl.so
;
2, 在httpd.conf
中打开引用httpd-ssl.conf
的配置指令;
3, 在httpd-ssl.conf
的<VirtualHost _default_:443>
中:
配置DocumentRoot
配置ServerName
可以去掉SSLSessionCache(如果不去掉,在httpd.conf,还要打开一个模块)
配置SSLCertificateFile(这个是crt证书)
配置SSLCertificateKeyFile(这个是私钥)
4, 配置80端口跳转443端口
<VirtualHost *:80>
ServerName your.domain.com
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R=301]
</VirtualHost>
如果哪一天出现网站证书方面的问题,想要临时再转回80端口,也是一样的写法,只是反过来而已。
注意:如果不写R=301,默认是302跳转。
可以这样考虑,80到443是301,如果CA证书出问题,必须要恢复80访问的时候,443到80可以是302.
Listen 443
这条指令,默认在httpd-ssl.conf中已经有了,因此在httpd.conf中不需要再配置,否则会提示错误。
最后,在重启Apache之前,别忘了使用httpd -t
来检查配置。
(对于一些手动生成的内部链接,还需要通过SQL来统一修改。)
最后,升级成功后,在页面的<head>
部分增加一行代码:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
这行代码可以自动让页面中嵌入的http地址,以https的方式来访问。有了这行代码,阿里妈妈的橱窗广告就能显示出来了。
本文链接:https://cs.pynote.net/net/httpd/202203291/
-- EOF --
-- MORE --