开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
  1. Home
  2. Computer Science
  3. This article

Discourse 如何不使用 Let’s Encrypt 而使用 CA 签名的密钥进行安装

2020年10月05日 449Browse 0Like 0Comments

通过访问密钥签发机构上面提供的信息了解到:Let’s Encrypt 针对一个域名只会在一定时间内签发 5 次,如果你超过了签发的次数,你需要 5 天后才能再次申请。

这个可能对你会造成无法安装成功的影响,因为你只有 5 次安装的机会,否则你在安装过程中会得到错误信息如下:

[Sun 04 Oct 2020 04:52:58 AM UTC] Create new order error. Le_OrderFinalize not found. {
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Error creating new order :: too many certificates already issued for exact set of domains: www.ossez.com: see https://letsencrypt.org/docs/rate-limits/",
  "status": 429
}

使用 CA 签名的域名

我们参考了官方的帮助文档,并且参照我们的平台进行测试后安装成功了。

现将经验分享给大家。

官方的安装 CA 签名密钥内容如下:https://meta.discourse.org/t/advanced-setup-only-allowing-ssl-https-for-your-discourse-docker-setup/13847

购买 SSL

首先你获得已经对你域名签名的密钥,这个密钥通常的格式是 key 和 crt。

如果你对 https 签名的流程还不太了解的话,你可以搜索下相关文章。

最简单的逻辑就是你自己生成一个 key,然后将这个 key 和你的域名信息发给 CA 签发机构,这些机构会对你的信息进行一些审查。因为我们只签名 www 和根域名,这种签名方式是最简单的,只要校验你是不是域名的持有者,基本会发个邮件到你的邮箱中就可以确认了。

当上面的信息确认后,CA 会将你发给他们的 key 进行签名,签名后将结果返回给你,这就是你拿到的 crt。

要对域名进行 https 加密,需要上面 2 个文件就可以了。

将文件上传到服务器

Discourse 对文件的命名有要求,你不能随意命名。不管你签名的域名是什么。你在安装的时候的 key 文件需要命名为 ssl.key,你的 crt 文件需要命名为 ssl.crt。

你不能将你的密钥命名为其他名称,文件名要和上面的要求一致。

文件放置的位置为:/var/discourse/shared/standalone/ssl 路径下面。

配置信息如下表:

文件名 类型 放置路径
ssl.key key 文件 /var/discourse/shared/standalone/ssl/ssl.key
ss.crt crt 文件 /var/discourse/shared/standalone/ssl/ssl.crt

请注意,这个放置的位置是你的服务器的文件路径位置,不是你服务器上安装 docker 容器后,docker 容器内的文件路径。

Discourse-ssl-path

如上图,我们显示的文件路径和文件内容。

如果你服务器上不仅仅只有这 2 个文件,可能还有其他签名的文件的话,请删除其他的文件,只保留这 2 个文件。

修改 app.yml

修改 app.yml 文件中的配置。

app.yml 文件的路径为 /var/discourse/containers/app.yml,可以使用下面的命令进行修改:

vi /var/discourse/containers/app.yml

在这里,有 2 个地方需要注意:

如果

  - "templates/web.ssl.template.yml" 

这一行被注释的话,你需要取消注释。

如果

- "templates/web.letsencrypt.ssl.template.yml"

这一行没有注释的话,你需要注释上。

我们的文件看起来如下:

## Uncomment these two lines if you wish to add Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"

上面的这个配置这样注释的意图就是,启用 ssl 的配置,但是撤销使用 letsencrypt 的 ssl 签名。

 

Discourse-ssl-path-01

 

完成上面的修改后,保存退出。

开放端口
你需要进行检查你容器的端口。

你需要查看下你的 app.yml 文件中的端口是否被添加到容器中了。

expose:
  - "80:80"
  - "443:443"

你可以为你的容器开放更多的端口,但是针对 https 和 http ,你需要至少开放 80 和 443 端口。

 

Discourse-ssl-path-02

 

在上面我们的配置中,我们开放了上述的 2 个端口。

重新编译

在完成上面的所有操作后,进入目录 /var/discourse,然后在这个目录下运行:

./launcher rebuild app

对整个网站进行重新编译。当编译部署完成后,使用命令:

./launcher logs app

查看编译的结果,如果没有任何错误,表示编译部署成功,你的网站应该使用的是你自己的密钥了。

为了保险起见,你可以重启下 docker 容器。

重启 docker 容器的命令是:

systemctl restart docker

校验安装

在完成上面的所有操作后,你就可以通过浏览器访问你的网站的。

在任何浏览器的右上角,单击带锁的图标,然后查看证书。

 

Snag_54685d07

 

你可以通过这个链接查看你证书的签发机构,有效期和相关信息,以确定你的证书被正确安装到服务器上了。

 

Discourse-ssl-path-04

 

希望我们能一起构建更加安全和清洁的网络。

https://www.ossez.com/t/discourse-lets-encrypt-ca/552

Tags: None
Last updated:2020年10月05日

HoneyMoose

有温度的人文和独立的思考

Like
< Previous
Next >

Comments

Cancel reply

Archives
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,362)
    • Confluence (663)
    • Gradle (12)
  • U.S. (482)
  • 文化旅游 (145)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1