typecho开启https

为了高大上的小绿锁图标,今天打算搞个https

目前在阿里云和腾讯云都可以申请免费一年的证书,具体申请方法自行进入控制台折腾一下,非常简单

这里以阿里云申请的赛门铁克颁发的证书为例

审核通过后,拿到证书文件214049826330369.zip

在nginx根目录下创建cert目录,上传zip包里面的所有内容到cert文件夹

配置nginx.conf

server {
        listen          443;
        server_name     www.jioben.com;
        ssl on;
        ssl_certificate   /nginx/cert/214049826330369.pem;    #注意路径,我这里用绝对路径
        ssl_certificate_key  /nginx/cert/214049826330369.key;    #注意路径,我这里用绝对路径
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        root            /nginx/html/build;
        index           index.html index.htm index.php;

配置80端口强制跳转443端口

server {
        listen          80;
        server_name     www.jioben.com;
        root            /nginx/html/build;
        index           index.html index.htm index.php;

        rewrite ^(.*) https://$host$1 permanent; 

reload nginx 完成

其它要注意的问题

1、config.inc.php文件里面要加上如下配置

 /** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

2、进入博客后台——设置——基本
更换成https连接

3、开启https之前上传的附件和图片,其链接会锁死为http,需要替换为https开头
进入typecho数据库,typecho_contents表,test字段可以看到
使用命令批量替换

UPDATE `typecho_contents` SET `text`=REPLACE(`text`,'http','https')

4、我遇到chrome浏览器版本问题导致提示https不安全,更新最新版本解决

添加新评论