LetsEncrypt : LetsEncrypt 的中间证书
Posted
技术标签:
【中文标题】LetsEncrypt : LetsEncrypt 的中间证书【英文标题】:LetsEncrypt : Intermediate certificate for LetsEncrypt 【发布时间】:2017-03-18 06:21:47 【问题描述】:我们目前正在使用 LetsEncrypt SSL 证书,它运行良好。经过一些修改后,我们也可以将其拉入 Tomcat 和 Apache Web 服务器。
目前,我们希望将 LetsEncrypt 证书添加到 Etherpad,它需要 intermediate CA
文件。如何从 LetsEncrypt 提供的 4 个证书文件中获取这些文件。谢谢。。
LetsEncrypt SSL 设置:
"ssl" :
"key" : "/path-to-your/epl-server.key",
"cert" : "/path-to-your/epl-server.crt",
"ca": ["/path-to-your/epl-intermediate-cert1.crt", "/path-to-your/epl-intermediate-cert2.crt"]
,
在上面的配置中,我假设 Key 是 privkey.pem
转换为 .key 文件,.crt 是 cert.pem
转换为 cert.crt。 CA 里有什么?
谢谢。
更新
设置:
"ssl" :
"key" : "/etc/letsencrypt/live/www.project_name.de-0001/private.key",
"cert" : "/etc/letsencrypt/live/www.project_name.de-0001/cert.crt",
"ca": "/etc/letsencrypt/live/www.project_name.de-0001/root.crt"
,
尝试键时的错误日志:
[2016-11-04 13:25:15.612] [INFO] console - Report bugs at https://github.com/ether/etherpad-lite/issues
[2016-11-04 13:25:15.612] [INFO] console - Your Etherpad version is 1.6.0 (7dd934f)
[2016-11-04 13:25:15.613] [INFO] console - SSL -- enabled
[2016-11-04 13:25:15.613] [INFO] console - SSL -- server key file: /etc/letsencrypt/live/www.project_name.de-0001/private.key
[2016-11-04 13:25:15.614] [INFO] console - SSL -- Certificate Authority's certificate file: /etc/letsencrypt/live/www.project_name.de-0001/cert.crt
[2016-11-04 13:25:15.615] [ERROR] console - Error: EISDIR: illegal operation on a directory, read
【问题讨论】:
只是download them。 Lets Encrypt 的信任链相当复杂,您不需要全部。 @BoristheSpider :我下载了 ISRG Root X1,并假设它是 cert1.crt。我先试试看。谢谢。 @BoristheSpider :我尝试了您建议的证书文件,但出现错误。你能检查一下更新的主帖吗?谢谢。 如果你暂时去掉ca
这一行,你还会看到这个错误吗?
@AnandBhat:那行得通。谢啦。您可以将其发布为我接受的答案。谢谢你。 :-)
【参考方案1】:
在与cert.pem
相同的目录中应该有一个名为chain.pem
的文件,它包含到根CA 的证书链(对于我的证书,它只是一个证书,但将来可能会改变)并且应该成为你想要的。
$ ls live/my.domain.com/
cert.pem chain.pem fullchain.pem privkey.pem
我对 Etherpad 不熟悉,但我猜你应该这样配置它:
"ssl" :
"key" : "/etc/letsencrypt/live/www.project_name.de-0001/private.key",
"cert" : "/etc/letsencrypt/live/www.project_name.de-0001/cert.pem",
"ca": "/etc/letsencrypt/live/www.project_name.de-0001/chain.pem"
,
【讨论】:
谢谢。你能告诉我应该如何填充它,因为我尝试了一种配置但它不起作用。我在主帖中添加了更多信息。谢谢。 谢谢,但我仍然在 cert.pem 上遇到错误。同样的错误。有什么想法吗? 由于我对 Etherpad 不熟悉,因此恐怕无法真正帮助您。我只能告诉你,你手头似乎有正确的证书。没有 SSL 也能用吗? 是的,没有 SSL 也没问题。我们正在尝试为其配置 SSL。谢谢.. :-) 嗯,您帖子中的错误消息看起来像是指向目录而不是文件。但我真的不能贡献更多,对不起【参考方案2】:由于您不应该以 root 身份运行 etherpad,但可以以 root 身份使用letsencrypt,因此您首先需要运行 etherpad 实例的用户对证书具有读取权限。由于我的 etherpad 用户无权访问letsencrypt 我将 && chown 复制到另一个目录 a.e. /opt/certs/ 我的 etherpad 用户可以访问的地方。这可以通过 cronjob 在检查过期的letsencrypt证书时完成。
然后在 settings.json 中你需要添加 chain.pem 和 fullchain.pem 使用
"ca":["path to chain.pem", "path to fullchain.pem"]
settings.json 中的部分如下所示:
"ssl" :
"key" : "/opt/certs/privkey.pem",
"cert" : "/opt/certs/cert.pem",
"ca": ["/opt/certs/chain.pem", "/opt/certs/fullchain.pem"]
,
fullchain.pem 可能缺少根 ca。 在letsencrypt 过程中,仅添加chain.pem 而没有根CA。然后您必须在chain.pem 之后合并IdenTrust 根证书。 fullchain.pem 应该有它们,但有时看起来它缺少链中的“最后一个”:
https://www.identrust.com/certificates/trustid/root-download-x3.html 为我工作。
fullchain.pem 看起来像这样
-----BEGIN CERTIFICATE-----
your chain.pem
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
the intermediate / root ca https://letsencrypt.org/certificates/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----
【讨论】:
以上是关于LetsEncrypt : LetsEncrypt 的中间证书的主要内容,如果未能解决你的问题,请参考以下文章
sh 我的Automated LetsEncrypt更新程序的第一次修订为ZNC和朋友使用letsencrypt工具
sh 用于通过letsencrypt的docker镜像更新docker nginx代理中的letsencrypt证书的模板