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

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

通过访问密钥签发机构上面提供的信息了解到: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 容器内的文件路径。 如上图,我们显示的文件路径和文件内容。 如果你服务器上不仅仅只有这 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 签名。     完成上面的修改后,保存退出。 开放端口 你需要进行检查你容器的端口。 你需要查看下你的 app.yml 文件中的端口是否被添加到容器中了。 expose: - "80:80" - "443:443" 你可以为你的容器开放更多的端口,但是针对 https 和 http ,你需要至少开放 80 和 443 端口。     在上面我们的配置中,我们开放了上述的 2 个端口。 重新编译 在完成上面的所有操作后,进入目录 /var/discourse,然后在这个目录下运行: ./launcher rebuild app 对整个网站进行重新编译。当编译部署完成后,使用命令: ./launcher logs app 查看编译的结果,如果没有任何错误,表示编译部署成功,你的网站应该使用的是你自己的密钥了。 为了保险起见,你可以重启下 docker 容器。 重启 docker 容器的命令是: systemctl restart docker 校验安装 在完成上面的所有操作后,你就可以通过浏览器访问你的网站的。 在任何浏览器的右上角,单击带锁的图标,然后查看证书。     你可以通过这个链接查看你证书的签发机构,有效期和相关信息,以确定你的证书被正确安装到服务器上了。     希望我们能一起构建更加安全和清洁的网络。 https://www.ossez.com/t/discourse-lets-encrypt-ca/552

2020年10月05日 0Comments 512Browse 0Like Read more
Computer Science

Discourse 重复安装过程中的密钥签发问题

近期因为对服务器的平台进行切换和升级,在数据备份恢复的时候出现了不少问题,因此就进行了不少次数的重复安装。 在后面几次重复安装后,发现界面无法访问,通过使用命令 ./launcher logs app 查看安装的日志后发现 Let’s Encrypt 已经不再签发密钥了。原因是这个域名申请的密钥次数太多了。 这个对Discourse 的初级或者试验用户来说不是非常友好,因为你会有签发密钥安装的限制。 日志内容如下: [Sun 04 Oct 2020 04:52:57 AM UTC] Please check log file for more details: /shared/letsencrypt/acme.sh.log Error loading file ca.cer [Sun 04 Oct 2020 04:52:58 AM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory [Sun 04 Oct 2020 04:52:58 AM UTC] Single domain='www.ossez.com' [Sun 04 Oct 2020 04:52:58 AM UTC] Getting domain auth token for each domain [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 } [Sun 04 Oct 2020 04:52:58 AM UTC] Please check log file for more details: /shared/letsencrypt/acme.sh.log [Sun 04 Oct 2020 04:52:59 AM UTC] Installing key to:/shared/ssl/www.ossez.com_ecc.key [Sun 04 Oct 2020 04:52:59 AM UTC] Installing full chain to:/shared/ssl/www.ossez.com_ecc.cer cat: /shared/letsencrypt/www.ossez.com_ecc/fullchain.cer: No such file or directory Error loading file ca.cer Error loading file ca.cer Started runsvdir, PID is 2115 ok: run: redis: (pid 2123) 0s nginx: [emerg] cannot load certificate "/shared/ssl/www.ossez.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE) ok: run: postgres: (pid 2129) 0s chgrp: invalid group: ‘syslog’ rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted. rsyslogd: activation of module imklog failed [v8.1901.0 try https://www.rsyslog.com/e/2145 ] supervisor pid: 2124 unicorn pid: 2150 nginx: [emerg] cannot load certificate "/shared/ssl/www.ossez.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE) nginx: [emerg] cannot load certificate "/shared/ssl/www.ossez.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE) nginx: [emerg] cannot load certificate "/shared/ssl/www.ossez.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED…

2020年10月05日 0Comments 808Browse 0Like Read more
Computer Science

Discourse 升级后提示 https 混合内容

在升级 discourse 后,很多内容没有办法正确显示。 通过 F12 查看浏览器后,发现有提示 https 和 http 的混合内容。 下面是混合内容常在浏览器中看到的提示。     不管是不是对系统进行重启或者刷新缓存都没有办法解决。 强制使用 https 其实 Discourse 如果安装的时候使用了 https ,那么你可用修改配置强制所有内容都使用 https。 在默认的情况下,Discourse 都会使用 Let’s Encrypt 来对你的网站进行加密。 配置的路径在 :admin/site_settings/category/security 下面 你也可以直接搜索 force_https     在完成上面的配置后,你可以重启 docker 来刷新配置。 https://www.ossez.com/t/discourse-https/550

2020年10月05日 0Comments 625Browse 0Like Read more
Computer Science

Discourse 安装防火墙的配置如何让邮件能够发送

Discourse 安装成功后,我们可能希望启用 firewalld 的防火墙进程。 但是你会发现如果你在操作系统上启用后,邮件发送将会屏蔽。你可能会想到开启端口,当你成功开启端口后,你还是会发现你的邮件发送也是屏蔽的。 这是因为 docker 的端口也需要开放,你需要将 docker 设置到安全的 zone 里面。 分下面 2 步骤来做。 假设我们使用的端口是 587 来发送电子邮件的。 开放服务器的邮件端口 将服务器添加到可以开放的端口,这一步不是必须的,但是最好还是执行。 firewall-cmd --zone=public --permanent --add-service=http firewall-cmd --zone=public --permanent --add-service=https firewall-cmd --reload 将服务器上面的端口也添加到开放端口中,在这里我们一般需要开放80,443,587 端口。 firewall-cmd --zone=public --permanent --add-port=80/tcp firewall-cmd --zone=public --permanent --add-port=443/tcp firewall-cmd --zone=public --permanent --add-port=587/tcp firewall-cmd --reload 在完成上面的操作后,为了谨慎起见,你可用重启防火墙。 重启防火墙的命令是: systemctl restart firewalld 根据提示,你可以了解到你的防火墙是否被成功启动了。 配置 Docker 的防火墙 这部分非常关键,如果你不在这里进行配置的话,你的服务器还是没有办法发送测试邮件的。 firewall-cmd --permanent --zone=public --add-masquerade firewall-cmd --permanent --zone=trusted --add-interface=docker0 firewall-cmd --permanent --zone=trusted --add-port=587/tcp firewall-cmd --reload 在上面的命令中,非常重要的就是 --add-masquerade ,否则没有办法进行端口 forward。 最后,执行下面的命令重启防火墙和重启 docker systemctl restart firewalld systemctl restart docker 校验邮件发送 在完成上面的操作后,你就可以在 Discourse 上校验邮件发送情况了。 在登录你安装的 Discourse 实例后,选择邮件 > 下面的设置。 URL 上面的快速访问链接是: /admin/email 输入任何你可以接收到邮件的邮件地址,然后单击发送测试邮件:     如果测试没有问题,你将会看到显示发送状态已经成功了。     上面的状态显示发送已经成功了。 同时你需要访问你的邮箱地址,确定发送的测试邮件你已经收到了。 https://www.ossez.com/t/discourse/549

2020年10月05日 0Comments 637Browse 0Like Read more
Computer Science

CentOS 8 如何安装 htop

如果你安装使用的是 CentOS 的话,你可能没有办法直接安装 htop。 你会得到下面的信息: [root@vps-f2a02f66 discourse]# htop -bash: htop: command not found 解决办法 你可以将 RHEL 添加到你的仓库中。 运行下面的命令: yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm 上面的命令将会添加 RHEL 到仓库中,在过程中你需要输入 Y 来同意校验。 在完成上面的操作后,再执行 yum install htop 来执行安装。 在完整完成后,可使用 htop 命令来查看系统的运行情况。     如果你可以看到上面的界面,则表明 htop 已经安装成功。

2020年10月04日 0Comments 679Browse 0Like Read more
Computer Science

CentOS 8 安装 docker 报错 containerd.io >= 1.2.2-3

在更新或者安装 docker 容器的时候,提示下面的错误: Problem: package docker-ce-3:19.03.13-3.el7.x86_64 requires containerd.io >= 1.2.2-3 上面的问题如何解决。 解决 根据提示的内容,上面已经说得比较明确了。 就是需要使用 containerd.io 的版本要升级下。 你可以访问 docker 官方的链接有关 CentOS 的安装部分:  Docker Documentation – 1 Oct 20 Install Docker Engine on CentOS To get started with Docker Engine on CentOS, make sure you meet the prerequisites, then install Docker. Prerequisites OS requirements To install Docker Engine, you need a maintained version of... 首先你需要设置仓库: sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 然后执行命令 sudo yum install docker-ce docker-ce-cli containerd.io 就可以解决上面的问题了。 https://www.ossez.com/t/centos-8-docker-containerd-io-1-2-2-3/548

2020年10月04日 0Comments 814Browse 0Like Read more
Computer Science

为什么我们需要使用 JSON Web Tokens

让我们讨论下 JSON Web Tokens (JWT) 针对 Simple Web Tokens (SWT) 和 Security Assertion Markup Language Tokens (SAML) 而言有什么优势吧。 相对 XML 来说,JSON 格式更加简洁,对 JSON 格式进行编码后的数据量更小,这就使得 JWT 相对 SAML 来说显得更加小巧,这使得 JWT 更加容易能够在 HTTP 和 HTML 环境之间传递数据。 在安全性上面,SWT 只能使用通过 HMAC 算法的对称方式签名。JWT 和 SAML 都可以使用基于 X.509 认证的公钥/私钥 密钥对的方式进行加密和解密。相比针对 JSON 格式的签名,针对XML 的数字签名更加容易导入安全漏洞。 在 JSON 格式的处理上,当前几乎所有的语言都能够支持和进行解析,这是因为 JSON 格式的数据更加容易映射到数据对象中。XML 则没有针对文本到对象的映射支持。这就导致了相对 SAML 来说,JWT 的处理更加容易。 在使用方面,JWT 已经被大量的在互联网上面取得了应用,针对多平台的使用上,JSON 格式在客户端上面更加容易被使用,尤其是针对移动平台。 针对 JSON 和 SAML 数据格式的内容对比,请参考下面的图片: 从上面的图片的对比上,我们可以看到基于 JSON 格式的内容更少,表达性更好。 如果你希望了解更多有关 JSON Web Tokens 的使用,并且打算开始在你的系统中应用这种格式,请参考由 Auth0 官方提供的介绍和文档,访问链接是:http://auth0.com/learn/json-web-tokens。   https://www.ossez.com/t/json-web-tokens/537

2020年10月03日 0Comments 758Browse 0Like Read more
文化旅游

为什么一些人下载软件喜欢到官网

很多人可能都不知道自己的 2345 ,360 怎么就被装上去了。 软件厂商耍流氓又不是一天两天了。 来源不明的软件,可能会被植入病毒,流氓软件,木马等等。 官版这部分问题就没有,也不会触发防病毒软件误报。

2020年10月02日 0Comments 885Browse 0Like Read more
文化旅游

中国的软件为什么没有国外的发达

我们喜欢做快餐式的软件。 其实中国软件还是不错的,比应用层的话,我都怀疑这么小的屏幕怎么能塞下那么多东西。 我们差的是基础软件。这些东西做起来旷日持久,还需要不停的投入和市场培养。 一个抄袭成风,只希望一夜暴富的市场和环境,怎么可能做出那么多好东西? 做软件也需要创造力的,可惜我们只会服从,公司也喜欢听话的。 没有创造力,一切看起来就没有那么美好了。 如果有一天,所有平台不再无缘无故 404 了,那就有希望了。 现在还是先解决 404 的问题吧。

2020年10月02日 0Comments 693Browse 0Like Read more
Computer Science

安装 JDK 需要卸载之前的 JRE 吗

不需要。直接修改环境变量就可以了。 根据使用的操作系统不同,不同的操作系统可能有所不同。 Windows 的话 PATH 看一下 指向的 JDK 是哪个路径。 如果你要CMD 查看的话,你需要关闭 CMD 窗口,然后重新打开。

2020年10月02日 0Comments 961Browse 0Like Read more
1…186187188189190…309
Archives
  • July 2026
  • June 2026
  • 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,385)
    • Confluence (663)
    • Gradle (12)
  • U.S. (557)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1