如何在 Lightsail 实例中安装标准的 Let’s Encrypt SSL 证书?

上次更新时间:2021 年 10 月 20 日

如何为托管在不使用 Bitnami 堆栈的 Amazon Lightsail 实例中的网站安装标准 SSL 证书?

简短描述

以下解决方案涵盖为在不使用 Bitnami 堆栈的 Lightsail 实例中托管的网站安装标准的 Let's Encrypt SSL 证书。这些实例蓝图的示例包括 Amazon Linux 2、Ubuntu 等。如果您有不同的实例蓝图或想要安装标准证书,请参阅以下内容之一:

标准 Let's Encrypt 证书

有关在带有 Bitnami 堆栈的 Lightsail 实例中安装标准 Let's Encrypt SSL 证书(而不是通配符)的信息,如 WordPress、LAMP、Magento 等,请参阅如何在托管在 Amazon Lightsail 上的 Bitnami 堆栈中安装标准的 Let's Encrypt SSL 证书?

通配符 Let's Encrypt 证书(例如 *.example.com)

有关在使用 Bitnami 堆栈(如 WordPress、Lamp、Magento、MEAN 等)的 Lightsail 实例中安装通配符 Let's Encrypt 证书的信息,请参阅如何在托管在 Amazon Lightsail 上的 Bitnami 堆栈中安装通配符 Let's Encrypt SSL 证书?

有关在不使用 Bitnami 堆栈的 Lightsail 实例中安装通配符 Let's Encrypt 证书的信息,例如 Amazon Linux 2、Ubuntu 等,请参阅如何在 Amazon Lightsail 中安装通配符 Let's Encrypt SSL 证书?

解决方法

先决条件和限制

  • 以下步骤介绍了在服务器中安装证书。您必须手动完成其他步骤,例如配置证书和设置 HTTPS 重新导向。
  • 确保域直接或通过负载均衡器或分配指向 Lightsail 实例。要完成证书验证,请确保网站 URL 不会返回来自 Web 浏览器中的负载均衡器或分配的错误。

注意:此方法需要首先安装 Certbot 工具。有关安装说明,请参阅如何在我的 Lightsail 实例中安装 Certbot 软件包以进行 Let's Encrypt 安装?

1.    停止在实例中运行的 Web 服务。以下是针对不同 Linux 发行版的示例命令:

Linux 发行版中的 Apache web 服务,例如 Amazon Linux2、CentOS 等

sudo service httpd stop

Linux 发行版中的 Apache web 服务,例如 Ubuntu、Debian 等

sudo service apache2 stop

NGINX web 服务

sudo service nginx stop

2.    运行以下命令安装 SSL 证书。请确保将 example.com 替换为您的域名。

sudo certbot certonly --standalone -d example.com -d www.example.com

成功生成 SSL 证书后,您会收到消息“成功收到证书”。还提供了证书和密钥文件位置。将这些文件位置保存到记事本中以便在步骤 5 中使用。

3.    启动 Web 服务。以下是针对不同 Linux 发行版的示例命令:

Linux 发行版中的 Apache web 服务,例如 Amazon Linux 2、CentOS 等

sudo service httpd start

Linux 发行版中的 Apache web 服务,例如 Ubuntu、Debian 等

sudo service apache2 start

NGINX web 服务

sudo service nginx start

4.    设置自动续订证书。

如果 certbot 软件包使用 snapd 安装,则续订会在 systemd 计时器或 cronjobs 中自动配置。但是,由于必须在运行 Certbot 命令之前停止 Web 服务,因此必须自动停止和启动 Web 服务。要设置此自动化,请运行以下命令。以下示例使用 Aache2 作为 Web 服务。根据您的 Web 服务替换代码并停止启动命令。

sudo sh -c 'printf "#!/bin/sh\n service apache2 stop \n" > /etc/letsencrypt/renewal-hooks/pre/webservice.sh'
sudo sh -c 'printf "#!/bin/sh\n service apache2 start \n" > /etc/letsencrypt/renewal-hooks/post/webservice.sh'
sudo chmod 755 /etc/letsencrypt/renewal-hooks/*/webservice.sh

如果 Linux 发行版是 Amazon Linux 2 或 FreeBSD,那么 Certbot 软件包不是使用 snapd 安装的。在这种情况下,您必须通过运行以下命令手动配置续订。以下示例使用 Aache2 作为 Web 服务。根据您的 Web 服务替换代码并停止启动命令。

echo "30 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew --pre-hook 'service apache2 stop' --post-hook 'service apache2 start'" | sudo tee -a /etc/crontab > /dev/null

5.     只有证书安装和续订设置完成。您仍然必须配置 Web 服务器才能使用此证书并设置 HTTPS 重新导向。此配置会有所不同,取决于实例中的 Web 服务器设置。有关完成这些步骤的说明,请参阅基于 Web 服务的官方文档。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?