配置Apache支持HTTPS网站

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 --