【发布时间】:2020-02-28 17:24:31
【问题描述】:
tl;dr:我曾经使用 certbot 从 LetsEncrypt 安装新证书,但这涉及手动更新 TXT 记录。所以我试着改用乐高来做。但是当我使用乐高安装新证书时,它实际上并没有安装新证书(旧证书仍然显示在浏览器中)。
加长版:
我在运行 Bitnami 的 AWS Lightsail 实例上。我对 Linux 有点熟悉,但我不认为自己对它“得心应手”。
过去,我曾经执行以下操作来更新我的证书:
DOMAIN=mydomain.com
WILDCARD=*.$DOMAIN
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
(Install TXT records)
sudo /opt/bitnami/ctlscript.sh restart apache
但是,这有点烦人,LetsEncrypt 提供了乐高库来自动执行此操作。所以根据我能找到的documentation,我做了以下事情:
$ sudo /opt/bitnami/ctlscript.sh stop
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd stopped
/opt/bitnami/php/scripts/ctl.sh : php-fpm stopped
/opt/bitnami/mysql/scripts/ctl.sh : mysql stopped
$ sudo /opt/bitnami/letsencrypt/lego --tls --email="myemail@domain.com" --domains="mydomain.com" --domains="www.mydomain.com" --path="/opt/bitnami/letsencrypt" run
2020/02/28 16:58:57 [INFO] [mydomain.com, www.mydomain.com] acme: Obtaining bundled SAN certificate
2020/02/28 16:58:57 [INFO] [mydomain.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/3062019938
2020/02/28 16:58:57 [INFO] [www.mydomain.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/3062019945
2020/02/28 16:58:57 [INFO] [mydomain.com] acme: use tls-alpn-01 solver
2020/02/28 16:58:57 [INFO] [www.mydomain.com] acme: use tls-alpn-01 solver
2020/02/28 16:58:57 [INFO] [mydomain.com] acme: Trying to solve TLS-ALPN-01
2020/02/28 16:58:58 http: TLS handshake error from 74.108.143.17:49475: remote error: tls: illegal parameter
2020/02/28 16:58:58 http: TLS handshake error from 94.6.194.131:59130: remote error: tls: bad certificate
2020/02/28 16:58:58 http: TLS handshake error from 74.108.143.17:49476: remote error: tls: illegal parameter
2020/02/28 16:58:58 http: TLS handshake error from 94.6.194.131:59131: remote error: tls: bad certificate
2020/02/28 16:59:00 http: TLS handshake error from 81.187.9.124:49274: remote error: tls: bad certificate
2020/02/28 16:59:01 http: TLS handshake error from 74.108.143.17:49477: remote error: tls: illegal parameter
2020/02/28 16:59:01 http: TLS handshake error from 94.6.194.131:59136: remote error: tls: bad certificate
2020/02/28 16:59:03 [INFO] [mydomain.com] The server validated our request
2020/02/28 16:59:03 [INFO] [www.mydomain.com] acme: Trying to solve TLS-ALPN-01
2020/02/28 16:59:05 http: TLS handshake error from 94.6.194.131:59137: remote error: tls: bad certificate
2020/02/28 16:59:05 http: TLS handshake error from 74.108.143.17:49478: remote error: tls: illegal parameter
2020/02/28 16:59:06 http: TLS handshake error from 86.163.23.242:53113: remote error: tls: bad certificate
2020/02/28 16:59:08 http: TLS handshake error from 94.6.194.131:59138: remote error: tls: bad certificate
2020/02/28 16:59:08 http: TLS handshake error from 74.108.143.17:49479: remote error: tls: illegal parameter
2020/02/28 16:59:09 [INFO] [www.mydomain.com] The server validated our request
2020/02/28 16:59:09 [INFO] [mydomain.com, www.mydomain.com] acme: Validations succeeded; requesting certificates
2020/02/28 16:59:10 [INFO] [mydomain.com] Server responded with a certificate.
$ sudo /opt/bitnami/letsencrypt/lego --tls --email="myemail@domain.com" --domains="unmodchat.com" --domains="www.mydomain.com" --path="/opt/bitnami/letsencrypt" renew --days 90
2020/02/28 16:59:13 [INFO] [mydomain.com] acme: Trying renewal with 2158 hours remaining
2020/02/28 16:59:13 [INFO] [mydomain.com, www.mydomain.com] acme: Obtaining bundled SAN certificate
2020/02/28 16:59:14 [INFO] [mydomain.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/3062019938
2020/02/28 16:59:14 [INFO] [www.mydomain.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/3062019945
2020/02/28 16:59:14 [INFO] [mydomain.com] acme: authorization already valid; skipping challenge
2020/02/28 16:59:14 [INFO] [www.mydomain.com] acme: authorization already valid; skipping challenge
2020/02/28 16:59:14 [INFO] [mydomain.com, www.mydomain.com] acme: Validations succeeded; requesting certificates
2020/02/28 16:59:14 [INFO] [mydomain.com] Server responded with a certificate.
$ sudo /opt/bitnami/ctlscript.sh start
/opt/bitnami/mysql/scripts/ctl.sh : mysql started at port 3306
/opt/bitnami/php/scripts/ctl.sh : php-fpm started
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80
完成此操作并重新启动浏览器后,当我查看证书详细信息时,它列出了与以前相同的到期日期(3 月 20 日,距现在不到一个月)。
我做错了什么?我有一种感觉,乐高可能会将证书安装到错误的位置,但我不太确定如何找到“正确”的位置,也不知道如何告诉乐高将它们放在那里。
【问题讨论】:
-
你确定这不属于超级用户吗?
-
Bitnami 工程师在这里,lego 命令在 /opt/bitnami/letsencrypt/cetificates 文件夹中创建了一个名为“mydomain.com”的文件。检查我们的文档,我们解释了如何创建指向该文件的符号链接,以便 Apache 可以开始使用它们,您是否创建了该符号链接?你可以运行这个命令来验证它
ls -la /opt/bitnami/apache2/conf/server* -
@JotaMartos 当我运行该命令时,它看起来证书来自 10 月 30 日:lrwxrwxrwx 1 root root 49 Oct 30 2018 /opt/bitnami/apache2/conf/server.crt -> /etc/ letsencrypt/live/mydomain.com/fullchain.pem -rw-r--r-- 1 root root 1164 Oct 30 2018 /opt/bitnami/apache2/conf/server.crt.old -rw-r--r-- 1 根 985 2018 年 10 月 30 日 /opt/bitnami/apache2/conf/server.csr.old lrwxrwxrwx 1 根 47 2018 年 10 月 30 日 /opt/bitnami/apache2/conf/server.key -> /etc/letsencrypt/live/ mydomain.com/privkey.pem -rw-r--r-- 1 root root 1675 Oct 30 2018 /opt/bitnami/apache2/conf/server.key.old
-
您没有使用使用 lego 命令生成的证书。您可以按照step 3 of our documentation 创建新的符号链接吗?
-
@JotaMartos 好的,谢谢!我按照第 3 步操作,然后运行 lego 命令更新证书,现在一切正常。
标签: lets-encrypt bitnami amazon-lightsail