Ghost-Docker(五)Nginx+SSL+Https

使用 Ngins + SSL 证书,为 Ghost 实现 Https 访问。

HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。目的就是为了保护网站的数据,防止数据泄露、窃取。

以下介绍如何使用 Docker 封装的 Nginx 和 阿里云免费的 SSL 证书实现 Https 访问 Ghost

一、Docker Nginx 安装

1.1Docker 上拉取 nginx 镜像到本地:docker pull nginx

1.2 创建 nginx 容器,并映射 80、443 端口,80 端口是 http 默认访问的端口,443端口是 https 默认访问的端口:

>> docker run -d --name my-nginx -p 80:80 -p 443:443 nginx

二、阿里云 SSL 证书申请

2.1 在阿里云 SSL 证书控制台中购买免费、使用期一年的 SSL 证书。
在这里插入图片描述
2.2 填写证书申请,要确保需要绑定的域名已经被解析,而且一个 SSL 证书只能适用于一个域名,不过可以申请多个免费的 SSL 证书。
在这里插入图片描述
在这里插入图片描述
如果是阿里云的域名,选择自动 DNS 验证即可,否则选取其他两种方式之一。
在这里插入图片描述
提交审核十几分钟后就会通过。

三、修改 nginx.conf 文件

3.1 下载 SSL 证书,选择 nginx
在这里插入图片描述
在这里插入图片描述
下载文件里面有两个文件,一个是 xxxxx.pem,一个是 xxxxx.key

3.2 创建一个 cert 文件夹,并将 .pem .key 两个文件放在其中,使用 Dockercp 命令,把文件夹复制到 my-nginx 容器中。

>> docker cp cert my-nginx:/etc/nginx/

3.3 进入 my-nginx 容器,修改 /etc/nginx/nginx.conf 文件。

>> docker exec -it my-nginx /bin/bash
>> vim /etc/nginx/nginx.conf

3.4http{...} 中加入以下 server 代码。

http{

    ......
    
    server {
        listen 443 ssl;
        server_name xxxx.com; // SSL 证书绑定的域名,例如:www.blog.liangda-yld.top
        ssl on;
        
        ssl_certificate  cert/xxx.pem;// .pem 文件
        ssl_certificate_key cert/xxx.key;// .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;
        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header HOST $http_host;
            proxy_set_header X-Nginx-Proxy true;
            proxy_set_header X-Forwarded-Proto $scheme;
            
            proxy_pass http://172.17.0.3:2368; // 此处是 my-ghost 容器的 bridge 模式的 IPAddress
            proxy_redirect off;
        }
    }
    
    server {
        listen 80;
        server_name xxxx.com;// 域名
        rewrite ^(.*)$ https://xxxx.com:443/$1 permanent;// 把http的域名请求转成https
    }
}

3.5 配置完成后,检查一下nginx配置文件是否可用,有successful表示可用:

>> nginx -t // 检查nginx配置文件

3.6 配置正确后,重新加载配置文件使配置生效:

>> nginx -s reload // 使配置生效

3.7 如需重启nginx,用以下命令:

>> service nginx stop // 停止
>> service nginx start // 启动
>> service nginx restart // 重启

四、修改 my-ghost 容器文件

4.1 进入 my-ghost 容器,并修改 /var/lib/ghost/config.production.json 文件:

>> docker exec -it my-ghost /bin/bash
>> vim /var/lib/ghost/config.production.json

在这里插入图片描述
更改为 SSL 证书绑定的域名:443,同时确保实例的安全组 443 端口已经开放。本地便是:https://localhost:443

4.2 重启 my-ghost 容器:

>> docker stop my-ghost
>> docker start my-ghost

到此,就实现了 http 访问转换为 https 加密、安全访问了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值