我如何在 Lightsail 上托管的 Bitnami 堆栈中安装 Let's Encrypt SSL 证书?
我想在具有 Bitnami 堆栈的 Amazon Lightsail 实例中为我的网站安装通配符 SSL 证书。
简述
有关如何安装不同实例蓝图或标准证书的信息,请参阅以下 AWS Knowledge Center 文章:
- 我如何在 Lightsail 实例中安装标准的 Let's Encrypt SSL 证书?此解决方案包括 Amazon Linux 2 和 Ubuntu 等实例。
- 我如何在 Amazon Lightsail 上托管的 Bitnami 堆栈中安装 Let's Encrypt SSL 证书?此解决方案包括 WordPress、LAMP 和 Magento 等实例。
- 我如何在 Amazon Lightsail 中安装通配符 Let's Encrypt SSL 证书?此解决方案包括 Amazon Linux 2 和 Ubuntu 等实例。
解决方法
在 Bitnami 托管的 Lightsail 实例上安装通配符 Let's Encrypt SSL 证书的步骤取决于您的域使用的 DNS 提供商。请检查您的 DNS 提供商是否在 Lego 网站上的 DNS 提供商中列出。然后,选择适当的方法:
- 如果您的域使用的是其中一个列出的 DNS 提供商,使用 Bitnami 提供的 Lego 工具。
- 如果您的域没有使用列出的 DNS 提供商,则使用 Certbot 包。
**注意:**根据您的 Bitnami 堆栈使用的是原生 Linux 系统包(方法 A)还是自包含安装(方法 B),文件路径可能会发生变化。最新的 Bitnami WordPress 蓝图仅对方法 A 可用。
要确定 Bitnami 的安装类型,运行以下命令:
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
Lego 工具
Bitnami 提供 bncert-tool 和 Lego 工具。Lego 工具支持创建通配符 SSL 证书。bncert-tool 不支持创建通配符 SSL 证书。
**注意:**在以下示例中,DNS 提供商是 Amazon Route 53 和 Amazon Lightsail。
要使用 Lego 工具安装通配符 Let's Encrypt SSL 证书,请完成以下步骤:
-
创建具有编程访问权限的 AWS Identity and Access Management (IAM) 用户。要确定 Lego 完成 DNS 质询所需的 IAM 用户权限,请参见 Lego 网站上的 IAM 策略示例。
-
要在 nano 编辑器中打开 /root/.aws/credentials 文件,运行以下命令:
sudo mkdir /root/.aws sudo nano /root/.aws/credentials
-
在凭证文件中输入以下几行:
[default] aws_access_key_id = AKIA************E aws_secret_access_key = 1yop**************************l region = us-east-1
**注意:**将 aws_access_key_id 和 aws_secret_access_key 替换为您的值。将 us-east-1 替换为您的 Lightsail 实例的 AWS 区域。
-
要保存文件,按 Ctrl + X,然后按 y,最后按 Enter。
-
如果您的 Bitnami 实例不包含 /opt/bitnami/letsencrypt/ 目录,运行以下命令手动安装 Lego 客户端:
cd /tmp curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz tar xzf lego.tar.gz sudo mkdir -p /opt/bitnami/letsencrypt sudo mv lego /opt/bitnami/letsencrypt/lego
-
要在服务器中创建通配符 Let's Encrypt 证书,根据您的服务器类型运行以下命令:
Route 53 名称服务器:sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run
Lightsail 名称服务器:
sudo DNS_ZONE=DOMAIN /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run
注意:将 EMAIL-ADDRESS 替换为您想要接收证书更新的电子邮件地址。将 DOMAIN 替换为您的域名。
SSL 证书和私钥在以下位置生成:/opt/bitnami/letsencrypt/certificates/DOMAIN.crt 或 /opt/bitnami/letsencrypt/certificates/DOMAIN.key。 -
要停止 Bitnami 堆栈服务,运行以下命令:
sudo /opt/bitnami/ctlscript.sh stop
-
根据您的服务器和方法,将 SSL 证书和证书密钥文件链接到您的 Web 服务器当前读取的位置:
Apache,方法 Asudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
Apache,方法 B
sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
NGINX,方法 A
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
NGINX,方法 B
sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
**注意:**对于上述命令,将 DOMAIN 替换为您的域名。
-
要启动 Bitnami 堆栈服务,运行以下命令:
sudo /opt/bitnami/ctlscript.sh start
-
要自动续订证书,运行以下命令打开 crontab 编辑器:
sudo crontab -e -u bitnami
**注意:**Let's Encrypt 证书的有效期为 90 天。
在 crontab 文件中输入以下行,然后保存文件:
Apache
0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful
Nginx
0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload
**注意:**将 EMAIL-ADDRESS、DOMAIN 和 DNS 替换为您的值。 设置 HTTPS 重定向。有关更多信息,请参阅 Bitnami 网站上的使用 Apache 执行 HTTPS 重定向和使用 NGINX 执行 HTTPS 重定向。
Certbot 包
先决条件:
- 安装 Certbot。
- 确定您的 Linux 发行版。对于 Bitnami 托管的实例,Linux 发行版要么是 Debian,要么是 Ubuntu。运行以下命令以确认您的 Linux 发行版:
**注意:**此方法不支持自动证书续订。cat /etc/os-release | grep -i ^id
要使用 Certbot 包安装通配符 Let's Encrypt SSL 证书,请完成以下步骤:
-
启动 Linux GNU 屏幕会话。由于在域的 DNS 提供商中添加 TXT 记录需要时间,因此会话可能会超时。最佳做法是在 Linux GNU 屏幕中运行命令,这样会话不会超时。要启动屏幕会话,运行以下命令:
screen -S letsencrypt
-
要启动 Certbot 交互模式,运行以下命令:
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com
**注意:**将 example.com 替换为您的值。
如果您收到错误响应,如 "bash: certbot: command not found",您可能需要将 /bin/snap 添加到 PATH 环境变量。首先,输入 "exit" 并按 Enter。或者,按 Ctrl + D 退出屏幕会话。然后,编辑 /etc/environment,在列表中添加 /snap/bin。重启系统。要确认再没有发生错误,运行以下命令:$ certbot -h
-
复制 Let's Encrypt 提供的 TXT 记录。Let's Encrypt 会提供一个或多个 TXT 记录,您必须使用这些记录进行验证。
-
将提供的记录添加到您的域的 DNS 中。
重要说明: 在确认 TXT 记录已传播到互联网 DNS 之前,不要按 Enter。另外,不要按 Ctrl + D,因为此操作会终止屏幕会话。 -
要确认记录已经传播,通过 MxToolbox 网站上的 DNS 文本查找查找 TXT 记录:
_acme-challenge.example.com
**注意:**将 example.com 替换为您的值。
如果您的 TXT 记录已传播,您会在页面上看到 TXT 记录值。返回上一个屏幕,按 Enter。 -
如果您已被从 Shell 中删除,运行以下命令返回 Shell:
Screen -r SESSIONID
**注意:**运行 screen -ls 命令获取会话 ID。
-
(可选)如果出现提示,重复前面的步骤添加另一个 TXT 记录。
**注意:**如果您为 DNS 提供商使用 Route 53,每行输入一个 TXT 值。编辑 TXT 记录,然后在一个新行中添加 certbot 提供的 TXT 值。 -
保存 SSL 证书和密钥文件的文件位置。SSL 证书生成后,您会收到 "Successfully received certificate" 消息。
-
要配置您的 Web 服务器,使用此证书,根据您的服务器和方法运行以下命令:
Apache,方法 Asudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt sudo /opt/bitnami/ctlscript.sh start
Apache,方法 B
sudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt sudo /opt/bitnami/ctlscript.sh start
NGINX,方法 A
sudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt sudo /opt/bitnami/ctlscript.sh start
NGINX,方法 B
sudo /opt/bitnami/ctlscript.sh stop sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt sudo /opt/bitnami/ctlscript.sh start
**注意:**对于上述命令,将 DOMAIN 替换为您的域名。
-
设置 HTTPS 重定向。有关更多信息,请参阅 Bitnami 网站上的使用 Apache 执行 HTTPS 重定向和使用 NGINX 执行 HTTPS 重定向。

相关内容
- 已提问 2 年前lg...
- 已提问 8 个月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前