弄https的时候啥都不懂,结果走了不少弯路。总结一下流程

前提:域名解析弄好

首先申请SSL,方法很多,为了图方便用腾讯云https://console.cloud.tencent.com/certoverview申请了免费的TrustAsia TLS RSA CA。下载证书,获得以下四个文件:

surlive.net.csr

surlive.net.key

surlive.net_bundle.crt

surlive.net_bundle.pem

将.key和.crt放到/www/server/nginx/conf/目录下,使用宝塔面板修改nginx配置文件或直接修改/www/server/nginx/conf/nginx.conf,在 http{ 中加入以下代码后重启nginx

        ssl_certificate      surlive.net_bundle.crt; #.crt文件名
        ssl_certificate_key  surlive.net.key;    #.key文件名
server 
    {
        listen       443 ssl;
        server_name  surlive.net;  #域名

        ssl_protocols TLSv1.2 TLSv1.3; 
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;

        location / {
        root /usr/local/lighthouse/softwares/wordpress;   #wordpress工作目录
        index index.php;
    }
} 

server {                                     
  listen       80;
  server_name  surlive.net;                    #域名
  rewrite ^(.*)$ https://$host$1 permanent;
        }

之后修改/usr/local/lighthouse/softwares/wordpress/wp-config.php,加入以下代码

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

之后在宝塔面板的‘’网站‘’标签页下,点击站点-SSL-其他证书,将.key和.pem中的内容复制进去,点保存(或使用wordpress插件Really Simple SSL?未确认)虽然我不太清楚这步的具体机制,但是没这步不行,猜测可能是对wordpress数据库的对应词条进行了替换,顺带一提code server弄https就不需要这步

进入wordpress后台,修改wordpress地址和站点地址为https://xxxxx(如果改完之后炸了参照https://cuijiahua.com/blog/2017/10/website_1.html恢复),将各种设置、页面里填的http改为https

完事


''Stand on the shoulders of giants.''