四步搭建 VPS Web 服务器:Debian、Apache、Certbot 和 Let's Encrypt! 四步搭建 VPS Web 服务器:Debian、Apache、Certbot 和 Let's Encrypt!

四步搭建 VPS Web 服务器:Debian、Apache、Certbot 和 Let's Encrypt!

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


介绍

Apache HTTP 服务器徽标

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 并未包含在可选版本列表中。

Certbot 页面截图

我们找到的教程通常会推荐 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 服务器上托管了一个基本网站。

VaporVPS 主页

笔记

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