不知为何,我总是记不住这些 certbot 命令。已收藏!——raindog308
介绍

Debian、Apache、Certbot 和 Let's Encrypt 常用于网站安全。然而,对于新手来说,一个问题是很难找到简单明了的设置指南。本文将提供一份急需的简易教程。只需几分钟,我们就能搭建一个通过安全连接运行的基本网站。
列出简单的配方后,我们讨论了找到它有多么困难。然后,我们一步一步地讲解配方,最终搭建了一个拥有有效 Let's Encrypt 证书的正常运行的服务器。
简易食谱
以下是食谱。只需4个步骤:
root@vaporvps ~ # apt-get update
root@vaporvps ~ # apt-get upgrade
root@vaporvps ~ # apt-get install apache2 certbot python3-certbot-apache
root@vaporvps ~ # certbot --apache
找到食谱很难
为了了解新手查找相关资料有多难,我们不妨看看几个看似比较靠谱的地方。首先,我们查看Debian Wiki 上的 Let's Encrypt 页面。该页面并未涵盖 Debian 的当前版本 11,而且也没有清晰地列出所需的安装命令。
如果我们查看Let's Encrypt 的入门指南页面,会发现需要访问 Certbot 网站获取定制说明。但在Certbot 的链接页面上, Debian 11 并未包含在可选版本列表中。

我们找到的教程通常会推荐 Snapd。Snapd颇具争议。很多人不喜欢 Snapd ,原因包括它的自动更新功能和其他一些原因。
由于简单明了的教程很难找到,我决定把教程放在 Low End Box 上。让我们开始安装 Apache 和 Certbot 吧!只需几分钟,我们就能拥有一个带有 Let's Encrypt 证书的可用网站:
逐步完成安装步骤
首先,更新操作系统:
root@vaporvps ~ # apt-get update
[ , , , [
root@vaporvps ~ # apt-get upgrade
[ , , , ]
root@vaporvps ~ #
接下来,安装 Apache、Certbot 和 Apache 的 Certbot 扩展。
root@vaporvps ~ # apt-get install apache2 certbot python3-certbot-apache
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils augeas-lenses libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap libaugeas0 liblua5.3-0 python3-acme
python3-augeas python3-certbot python3-cffi-backend python3-configargparse
python3-configobj python3-cryptography python3-distro python3-josepy
python3-openssl python3-parsedatetime python3-requests-toolbelt python3-rfc3339
python3-tz python3-zope.component python3-zope.event python3-zope.hookable
python3-zope.interface
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser
augeas-doc python3-certbot-nginx python-certbot-doc augeas-tools python-acme-doc
python-certbot-apache-doc python-configobj-doc python-cryptography-doc
python3-cryptography-vectors python-openssl-doc python3-openssl-dbg
Recommended packages:
ssl-cert python3-icu
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils augeas-lenses certbot libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libaugeas0 liblua5.3-0
python3-acme python3-augeas python3-certbot python3-certbot-apache
python3-cffi-backend python3-configargparse python3-configobj
python3-cryptography python3-distro python3-josepy python3-openssl
python3-parsedatetime python3-requests-toolbelt python3-rfc3339 python3-tz
python3-zope.component python3-zope.event python3-zope.hookable
python3-zope.interface
0 upgraded, 31 newly installed, 0 to remove and 1 not upgraded.
Need to get 4,403 kB of archives.
After this operation, 16.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
[...]
root@vaporvps ~ #
安装的软件包数量真是惊人!🤩
我们可以通过访问服务器的数字 IP 地址(http://$Server_IP)来查看 Apache 是否正常工作。当然,现在还不是使用 HTTPS 的时候!我们还需要获取证书。
拿到证书!
运行这条简单的命令。按提示回答问题。
root@vaporvps ~ # certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): [email protected]
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
请阅读服务条款。
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf。您必须
同意此协议即可在ACME服务器上注册。您是否同意?
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
是/否:是
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
一旦您的第一份证书成功颁发,您是否愿意……
请将您的电子邮件地址分享给电子前沿基金会(Electronic Frontier Foundation),该基金会是电子前沿网站的创始成员之一。
Let's Encrypt 项目的合作伙伴,以及该非营利组织
您是 Certbot 的开发者吗?我们想向您发送关于我们网络加密工作的电子邮件。
EFF 新闻、活动以及支持数字自由的方式。
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
是/否:是
账户已注册。
您的配置文件中未找到任何名称。请输入您的域名。
名称(以逗号和/或空格分隔)(输入“c”取消):vaporvps.com
正在为 vaporvps.com 申请证书
完成以下挑战:
vaporvps.com 的 http-01 挑战
已启用 Apache 重写模块
等待验证……
清理挑战
在 /etc/apache2/sites-available/000-default-le-ssl.conf 创建了一个 SSL 虚拟主机。
已启用 Apache socache_shmcb 模块
已启用 Apache SSL 模块
将证书部署到虚拟主机 /etc/apache2/sites-available/000-default-le-ssl.conf
启用可用站点:/etc/apache2/sites-available/000-default-le-ssl.conf
已启用 Apache 重写模块
将 /etc/apache2/sites-enabled/000-default.conf 中的虚拟主机重定向到 /etc/apache2/sites-available/000-default-le-ssl.conf 中的 SSL 虚拟主机
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
恭喜!您已成功启用 https://vaporvps.com
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
订阅 EFF 邮件列表(电子邮件:[email protected])。
由于您的电子邮件地址似乎无效,我们无法将您订阅到 EFF 邮件列表。您可以稍后访问 https://act.eff.org 重试。
重要提示:
恭喜!您的证书和链条已保存至:
/etc/letsencrypt/live/vaporvps.com/fullchain.pem
您的密钥文件已保存至:
/etc/letsencrypt/live/vaporvps.com/privkey.pem
您的证书将于 2022 年 9 月 6 日到期。要获得新的证书或
将来如果需要此证书的修改版本,只需运行
再次使用 certbot 的“certonly”选项,以非交互方式进行操作。
请更新*所有*证书,运行“certbot renew”命令。
如果您喜欢 Certbot,请考虑通过以下方式支持我们的工作:
向 ISRG / Let's Encrypt 捐款:https://letsencrypt.org/donate
向 EFF 捐款:https://eff.org/donate-le
root@vaporvps ~ #
成功了吗?
让我们访问 https://vaporvps.com 并检查安全证书。证书有效!

将 index.html 文件替换为我们自己的代码
我们可以用自己的代码替换 Apache2 Debian 默认页面。现在,我们通过安全连接从 VPS 服务器上托管了一个基本网站。

笔记
不知道为什么邮件没被接受。以前一直都有效。可能是因为已经订阅过了。