为本站添加了SSL证书

使用浏览器时,您与此网站之间建立的连接不安全 的提醒很碍眼,所以今天为本站添加了SSL证书,启用 https://


申请SSL证书

在阿里云的 云盾证书服务(包年),免费的SLL证书,要先点击Symantec一个域名,就会出现 免费型DV SSL 的选项,然后就可以0元购买。

有两种域名验证方式

  1. DNS验证方式
  2. 文件验证方式

通过验证就申请成功了。然后在证书控制台,下载并安装证书。

下载.pem.key 文件,然后上传到服务器,知道路径就行。


安装SSL证书

这部分,主要是Nginx的操作。虽然使用LNMP一键安装包安装LNMP,但没有使用 lnmp ssl add 添加证书。

我的操作是,修改/usr/local/nginx/conf/vhost 路径下相应站点的 .conf 文件。

server
    {
        listen 80;
        #listen [::]:80;
        server_name blog.francis67.cc francis67.cc;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/blog.francis67.cc;

        #SSL配置从这里新增
        listen 443;
        ssl on;
        ssl_certificate   /usr/local/nginx/conf/vhost/cert/xxx.pem;
        ssl_certificate_key  /usr/local/nginx/conf/vhost/cert/xxx.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;
        #SSL配置到这里结束

        include rewrite/other.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php-pathinfo.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
         {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/y.log;
        }

重启Nginx服务 /etc/init.d/nginx restart

参考:

  1. [建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务
  2. LNMP下Nginx SSL配置的方法详解

typecho设置

  • 配置config.inc.php

文件位于typecho根目录,新增如下内容:

    /** 开启SSL */
    define('__TYPECHO_SECURE__',true);
  • 后台设置

后台管理—>基本设置—>站点地址,将 https://blog.francis67.cc 换成 https://blog.francis67.cc

  • 更换全站链接

使用phpMyadmin在SQL中中执行:

UPDATE typecho_contents SET TEXT = REPLACE( TEXT, 'http://www.opdev.me/', 'https://www.opdev.me/');

  • Chrome警告

找到站点主题目录下的comments.php文件,并搜索$this->commentUrl(),将其替换为:echo str_replace("http","https",$this->commentUrl()); 最后保存。

参考:

  1. Typecho全站启用HTTPS教程
  2. Typecho 全站启用SSL

强制全站https

此时httphttps应该都是可以访问的,如果想只使用https,我们可以我通过Ningx将80端口(HTTPS)重定向到443端口(HTTPS),强制全站HTTPS。

修改/usr/local/nginx/conf/vhost 路径下相应站点的 .conf 文件。

把前面的listen 80;注释掉,再添加一段

server
{
    listen 80;
    server_name blog.francis67.cc francis67.cc;
    rewrite ^(.*) https://blog.francis67.cc$1 permanent;
}

参考:

  1. Nginx强制https,HTTP 301重定向到HTTPS

目前有三张免费SSL证书,分别用在了blog.francis67.ccblog.francis67.ccfile.francis67.cc,都已经启用了https://

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注