3

作为家族中的常驻技术人员,我正在帮助启动新的家族企业网站。在编码和 Web 开发方面,我的经验非常有限(我在高中时做了一个基本的 html/css 网站)。请多多包涵

到目前为止,我的域、托管和 DNS 工作正常。主机是 AWS Lightsail,在 Ubuntu 16.04 和 Bitnami 上运行 Wordpress。现在我正在尝试设置 SSL,因为我们希望在网站上使用信用卡付款。经过几天的研究,我走上了 Let's Encrypt 的道路,我正试图在服务器上获取证书。如果我已经犯了某种严重错误,请阻止我。

无论如何,我使用的说明来自:https ://certbot.eff.org/#ubuntuxenial-apache

我已经取得了一些进展,直到。查看腻子的完整粘贴: https ://pastebin.com/dhLs7c3A

root@ip-172-26-2-150:/home/bitnami# sudo certbot --apache -d profq.com.au -d www.profq.com.au

总而言之,我跑了这条线:“root@ip-172-26-2-150:/home/bitnami# sudo certbot --apache -d profq.com.au -d www.profq.com.au”

问题从以下行开始:

“运行 apache2ctl graceful 时出错。httpd 未运行,尝试启动 Action 'graceful' 失败。”

非常感谢任何帮助或建议。谢谢

4

2 回答 2

3

您是否简单地尝试过 Bitnami 工具,听起来与您描述的内容相关,它听起来像是 lightsail 上的 wordpress。

要启动 Bitnami HTTPS 配置工具,请执行以下命令并按照提示操作:

sudo /opt/bitnami/bncert-tool

您可能需要以sudo suroot 身份运行。

这应该很容易解决问题。

于 2020-06-16T17:36:12.273 回答
2

我昨天遇到了同样的问题,由于没有建议解决方案,我将写下我如何解决它。

显然,此问题与 Lightsail 实例或正在运行的 Apache 服务器没有直接关系,而是与位于其之上的 Bitnami 堆栈有关。以下是安装letsencrypt证书的步骤,取自此处

先决条件 您需要做的第一件事是确保所有软件包都在您的服务器上更新。您可以使用以下命令执行此操作。

sudo apt update
sudo apt upgrade

1. 安装 CERTBOT

首先,创建一个要安装 Certbot 客户端的目录并移至该目录。

sudo mkdir /opt/bitnami/letsencrypt
cd /opt/bitnami/letsencrypt

现在继续从官方 certbot 发行版安装 Certbot 客户端。您还需要确保脚本具有执行权限。

sudo wget https://dl.eff.org/certbot-auto
sudo chmod a+x ./certbot-auto

现在运行 certbot-auto 脚本来完成安装。该脚本可能会显示一些错误,但您可以忽略它。它将运行并下载它所需的所有依赖项。

sudo ./certbot-auto

2. 生成证书

安装 Certbot 客户端后,您可以继续为您的域生成证书。

sudo ./certbot-auto certonly --webroot -w /opt/bitnami/apache2/htdocs/{example} -d www.example.com -d example.com

仅当您不将文件存储在 htdocs 文件夹本身中时,上面的 ^{example} 是可选的。www.example.com 和 example.com 应该是您的域名。

运行此命令后我遇到了问题,因为我没有为 www 设置 CNAME 记录。我的网站的版本。错误是: DNS 问题:NXDOMAIN 正在查找 A for www.example.com 要修复它,请转到您的 lightsail 页面,打开 Netowkring 选项卡并为您的站点选择 DNS 区域。在 DNS 记录下单击Add record,选择 CNAME,在子域中只输入 www,在映射到字段中输入您的域而不输入 www。字首。之后运行上述命令应该没有任何问题。

如果您需要获取多个域的证书,请遵循本指南。它基本上是为每个域主目录添加新路径,从而产生以下命令:

certbot certonly --webroot -w /opt/bitnami/apache2/htdocs/example -d www.example.com -d example.com -w /opt/bitnami/apache2/htdocs/other -d www.other.net -d example.net

3. 将 Let's Encrypt SSL 证书链接到 Apache

您可以在这些位置复制 SSL 证书并重新启动 Apache 以启用新文件。但是使用这种方法,您必须在更新证书时再次复制文件。

因此,更好的方法是创建一个指向您的证书文件的符号链接。每当您续订许可证时,无需此额外步骤即可生效。

您可以使用以下命令创建符号链接。

sudo ln -s /etc/letsencrypt/live/[DOMAIN]/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo ln -s /etc/letsencrypt/live/[DOMAIN]/privkey.pem /opt/bitnami/apache2/conf/server.key

确保证书文件名和路径正确。如果您收到文件已存在的错误,请使用以下命令重命名文件。然后重新运行以上两条命令。

mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/serverkey.old
mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/servercrt.old

符号链接到位后,您可以重新启动 Apache 服务器以使其生效。使用以下命令重新启动 Apache 服务器。您也可以从 Lightsail 页面重新启动它。

sudo /opt/bitnami/ctlscript.sh restart apache

而已。在此之后,转到https://example.com应该可以工作,您应该会看到您的证书。

注意。该证书的有效期仅为 3 个月,因此您需要每 3 个月手动刷新一次或为此进行 cron 作业。要刷新它,请按照以下命令操作:

sudo apt update
sudo apt upgrade
cd /opt/bitnami/letsencrypt
sudo ./certbot-auto renew
sudo /opt/bitnami/ctlscript.sh restart apache
于 2019-01-06T11:11:07.990 回答