Ghost-Docker(五)Nginx+SSL+Https

2023-11-03

使用 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 加密、安全访问了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ghost-Docker(五)Nginx+SSL+Https 的相关文章

随机推荐

  • D3dcompiler_43.dll缺失怎么修复?快速修复方法分享

    D3dcompiler 43 dll缺失怎么修复 在使用Windows系统的过程中 您可能会遇到 D3dcompiler 43 dll缺失 的问题 这个问题通常会导致应用程序无法正常运行 因为它是Direct3D编译器的一部分 而Direc
  • 2020-08-13

    AlertDialog You need to use a Theme AppCompat theme or descendant with this activity 解决方案 将 super context 修改为 super cont
  • kingsoft的服务器信息,Win10系统kingsoft是什么文件夹?可以删除吗?

    在使用Win10系统的过程中 有很多人在盘符里面发现了一个kingsoft文件夹 于是就想问Win10系统kingsoft是什么文件夹 可以删除吗 其实这个问题很简单 但是如果你不知道的话 那就赶紧看看小编整理的以下文章内容吧 Win10系
  • shell脚本实战-while循环语句

    前言 上文我们讨论了for循环的使用 在有限循环里 我们使用for循环是很方便的一件事情 今天我们来探讨下while循环 while循环语句的语法分析 语法格式一 while 条件 do 操作 done 语法格式二 while read l
  • 生成随机小数的函数python_哪个选项是random库中用于生成随机小数的函数?

    其它 一个整数 它加上100后是一个完全平方数 再加上168又是一个完全平方数 试编写代码输出该整数 要求 1 粘贴代码图片 图片需包括行号 代码不可超过6行 争取4行 2 粘贴结果图片 符合条件的整数有四个 单选题 哪个选项不能正确引用t
  • PD16 for Mac(支持M1芯片)v16.3.2(50531)中文版介绍

    PD16虚拟机中文版是mac上最强大也是最好用的虚拟机软件 Parallels Desktop Mac 16 可以显着降低磁盘 内存和CPU使用率 而且针对Windows 10更新进行了优化 更新了超过50个新功能 可以让您更充分地利用你的
  • Out-Of-Vocabulary(OOV)的理解

    OOV 问题是NLP中常见的一个问题 其全称是Out Of Vocabulary 下面简要的说了一下OOV 怎么解决 下面说一下Bert中是怎么解决OOV问题 如果一个单词不在词表中 则按照subword的方式逐个拆分token 如果连逐个
  • 汉字简/繁体转换

  • C语言:删除字符

    本题要求实现一个删除字符串中的指定字符的简单函数 函数接口定义 void delchar char str char c 其中char str是传入的字符串 c是待删除的字符 函数delchar的功能是将字符串str中出现的所有c字符删除
  • 【kernel envirment】config tiny X86 kernel with vfs

    Automatically generated file DO NOT EDIT Linux x86 4 19 0 Kernel Configuration Compiler gcc Ubuntu 7 3 0 27ubuntu1 18 04
  • cocos creator 血条跟随3d convertToUINode导致的问题,使用worldToScreen解决跟随偏离问题

    cocos creator3 3 2 实现血条跟随 一开始使用的camera的converToUINode 也是按照麒麟子大师的博客操作 结果最终的效果 在屏幕中间 血条显示正常 在屏幕边缘就开始出现偏差 x和y都有的偏差 最终也没有解决方
  • 择后自动上传html代码,GitLab + Jenkins + Webhook 实现Push代码后自动更新

    一 介绍 通常是开发后的代码先推到Gitlab上管理 然后在Jenkins里通过脚本构建代码发布 这种方式每次在发版的时候 需要人工去执行jenkins上的构建动作 有时显得过于繁琐 Gitlab的Webhook功能 通过Webhook的相
  • 九月份参加OPPO和腾讯Android面试:技术一面+二面+三面+HR四面,我的面经总结!

    之前很多时候我是拒绝说我的面试经验的 因为我们简历经历不一样问的问题也会不一样 且大厂面试光靠背几个面试题就想过还是比较难的 因此在这里提醒一下大家不要临时抱佛脚 你花几天能背下的东西 别人花几天一定能超过你的 但我们花几年沉淀的东西 人家
  • 公司企业微信小程序创建步骤

    随着新一代互联网的发展 小程序已经成为当今社会不可或缺的重要部分 它的简单易用 公司企业小程序是一种基于微信平台构建的应用程序 旨在为企业提供灵活便捷的营销服务 关于公司企业微信小程序创建步骤 可分为以下几个部分 一 申请微信公众号并创建小
  • 2022年,软件测试还能学吗?别学了,软件测试岗位饱和了...

    8年前 我懵懂的选择了软件测试这个行业 穷困潦倒的时候 爸妈给我付了2万块钱进入了一家培训机构 我怀着感激和破釜沉舟的情绪开始学习软件测试 3个月的学习时间 住群租宿舍 吃盒饭 平时上课认真听讲 周末就跑自习室 在学了基础课程之后 找工作的
  • vue中纯JS调用自定义组件

    案例以vant为例 1 首先创建index vue index js文件 2 index vue跟我们平常写的组件是一样的
  • 51单片机学习笔记(十二) - 红外遥控

    文章目录 前言 一 红外遥控的背景知识 1 人机交互 2 红外遥控的相关知识 二 原理图电路分析 三 NEC协议讲解 1 逻辑1与逻辑0的表示 2 NEC协议格式 3 NEC协议的关键点 四 代码实现 总结 前言 随着科技的发展 红外遥控器
  • 【Spring Boot整合MyBatis教程】

    Spring Boot是由Pivotal团队提供的全新框架 其设计目的是用来简化新Spring应用的初始搭建以及开发过程 该框架使用了特定的方式来进行配置 从而使开发人员不再需要定义样板化的配置 通过这种方式 Spring Boot致力于在
  • 用4种语言编写端口扫描器(Java、C、Python、Go)

    Java import java net InetSocketAddress import java net Socket import java util concurrent ExecutorService import java ut
  • Ghost-Docker(五)Nginx+SSL+Https

    使用 Ngins SSL 证书 为 Ghost 实现 Https 访问 HTTPS 协议是由 HTTP 加上 TLS SSL 协议构建的可进行加密传输 身份认证的网络协议 主要通过数字证书 加密算法 非对称密钥等技术完成互联网数据传输加密