部署hexo(三):支持 HTTPS

流程图

前期准备

购买 SSL 证书

阿里云提供了一种免费的”单域名“证书,单域名证书只能给一个域名/子域增加 https,适用于个人小网站。

ssl证书购买.png

支付.png

证书购买后,需要填写信息,提交审核。免费的证书审核下发很快。
下发之后,将证书下载到本地,解压后是.pem.key两个文件。
PS:一般免费的证书有效时间是一年,一年过期后需要重新购买再在自己的机器下更新证书(最新免费证书购买参考

将证书复制到远端实例

  • 登录远程服务器: ssh username@服务器ip
  • /etc/nginx/下新建 cert 文件夹,将证书包含的两个文件放进去。
    • scp -r localFilePath username@服务器ip:path #从本地到服务器
    • scp -r username@服务器ip:path localFilePath #从服务器到本地

除了上述方法,也可以直接创建文件,复制内容到远端服务器。

增加 nginx 配置

server {
        listen 443 ssl;   #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
        server_name ip;  #将localhost修改为您证书绑定的域名,例如:www.example.com。
        root /var/www/hexo;
        # index index.html index.htm;
        ssl_certificate cert/yourcert.pem;   #将domain name.pem替换成您证书的文件名。
        ssl_certificate_key cert/yourcert.key;   #将domain name.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;
        access_log  /var/log/nginx/hexo_access.log;
        error_log   /var/log/nginx/hexo_error.log;
        location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
                root /var/www/hexo;
                access_log   off;
                expires      30s;
        }
        location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
                root /var/www/hexo;
                access_log   off;
                expires      30s;
        }

        location / {
                root /var/www/hexo;
                if (-f $request_filename) {
                         rewrite ^/(.*)$  /$1 break;
                 }
        }
}

之后,重启 nginx : nginx -s reload (或者使用 niginx -h 查看相关命令)

实例端口放行

放行443端口.png

常见问题

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。