为了让本网站加上一个小锁,探索了好久,终于弄成功了。先展示未安装证书之前:

现描述配置步骤如下。
获取SSL免费证书
在云服务商上申请免费证书。证书有效期为1年。现以阿里云免费证书云盾证书服务 (aliyun.com)购买示例:

在控制台下载证书:

选择Apache服务器类型的证书进行下载:

得到一个压缩文件,文件包含以下内容:

- 证书文件:以.crt为后缀或文件类型。
- 证书链文件:以.crt为后缀或文件类型。
- 密钥文件:以.key为后缀或文件类型。
安装证书到Apache
接下来请根据这篇指引进行配置安装:在Apache服务器上安装SSL证书 (aliyun.com)
在实际操作中,我和指引中不同的是,mod_ssl.so不需要在httpd.conf里进行引用。阿里云文档里的http-ssl.conf,实际上就是/etc/httpd/conf.d/ssl.conf(安装好mod_ssl.so模块后,ssl.conf文件就会产生)。
通过FTP传输工具把证书上传到指定位置,在配置时就用这个位置(右图)。


弄好后记得重启Apache服务器:
apachectl restart
服务器的安全组记得开放443端口:

CDN中的HTTPS设置
我一开始遇到的问题是这个:Apache安装好证书后还是无法生效。Chrome浏览器提醒的是证书不匹配,一看详情,他竟然在匹配腾讯云的cdn的证书……所以我认为CDN环节中还需要相应设置。(和我遇到同样的问题:https://cloud.tencent.com/developer/ask/21141)
解决方法如下所述。
如果你的网站开启了CDN,比如我使用的是腾讯云的CDN,那么需要在腾讯云控制台中进行设置:

按照指引上传证书进行托管:


上传成功后部署即可。
参考文档:SSL 证书 安装部署 SSL 证书到内容分发网络(CDN)指引 – 证书安装 – 文档中心 – 腾讯云 (tencent.com)
WordPress使用HTTPS
到这里,使用HTTPS访问时,浏览器还是会提醒该站点“并非完全安全”。
WordPress设置中修改地址:

如果修改不成功(比如页面不安全什么的),可以通过数据库修改:

登录服务器,修改文件:
1,修改的路径:\wp-includes\functions.php文件
2,打开修改functions.php文件,找到代码 require( ABSPATH . WPINC . ‘/option.php’ ); 在下方添加:
add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2);
function agnostic_script_loader_src($src, $handle) {
return preg_replace('/^(http|https):/', '', $src);
}
add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2);
function agnostic_style_loader_src($src, $handle) {
return preg_replace('/^(http|https):/', '', $src);
}
再修改配置文件:
在wordpress网站根目录中找到,wp-config.php文件,
在文件开头位置中,添加如下代码:
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
成果
可以使用检查工具检查:SSL Checker (decoder.link)


后续
强制跳转HTTPS
在腾讯云域名控制台开启这个:

其他链接
参考:【亲测】wordpress如何开启全站https-真实有效_前端小罗的博客-CSDN博客_wordpress设置https
我走过的弯路:
[…] […]