在树莓派上安装使用 Let's Encrypt SSL 证书

此树莓派 SSL 证书项目将引导您完成在 Pi 上安装和设置 Let ‘s Encrypt Certbot 客户端的步骤。

此 Certbot 客户端允许用户通过使用您的网络服务器或运行其自己的临时服务器,从 Let ‘s Encrypt 获取 SSL 证书。

加密是让树莓派完全免费轻松获得安全和认证的 SSL 证书的最佳方法。

在开始在树莓派上设置 SSL 之前,请确保已经设置了域名并指向您的 IP 地址,因为 IP 地址不能具有经过认证的 SSL 证书。

如果您将 Cloudflare 用作 DNS 提供商,请确保已将其设置为绕过 Cloudflare ,因为它会隐藏 IP 地址,这意味着” 加密” 工具将无法验证树莓派的 IP 地址并生成 SSL 证书。

设备清单

以下是我用来在树莓派上设置” 让我们加密 SSL “的所有点点滴滴,您需要连接互联网才能完成本教程。

推荐的

  • 树莓派 2 或 3

  • Micro SD 卡

  • 电源

  • 以太网网络连接或 * Wifi 加密狗 (Pi 3 具有 WiFi 内置的)

可选的

  • 树莓派外壳

安装并运行 LetsEncrypt

1 在我们的树莓派上设置 LetsEncrypt 之前,我们应该首先确保所有内容都是最新的。

我们可以通过运行以下两个命令来做到这一点。

sudo apt-get update
sudo apt-get upgrade

2 现在,我们可以通过运行以下命令之一将实际的 LetsEncrypt 软件安装到我们的树莓派中。

该软件称为”Cerbot”。如果运行的是 Apache ,则可以为其安装 certbot 模块,否则,请安装 certbot 的标准版本。
阿帕奇

sudo apt-get install python-certbot-apache

一切

sudo apt-get install certbot

3 最终安装了 Certbot 之后,我们可以从 Let ‘s Encrypt 获取树莓派的 SSL 证书。有两种处理方法。

如果您不使用 Apache ,则可以跳过此步骤。如果正在使用 Apache ,则获取证书的最简单方法是运行以下所示的命令,这将自动获取并安装证书进入 Apache 的配置。

在此之前,您首先必须确保端口 80 和 443 端口已转发端口。另外,如果您将 Cloudflare 用作 DNS 提供商,则由于它隐藏了您的真实 IP 地址,因此您需要暂时绕过它。

certbot --apache

4 如果您未运行 Apache ,则可以使用两种不同的方法从 Let ‘s Encrypt 获取证书。借助 certbot 软件,我们可以使用独立的 python 服务器来获取服务器。

另外,如果您正在运行另一个 Web 服务器,例如 NGINX ,我们也可以利用它来获取证书。尽管一旦获得证书,您将必须手动设置证书。

如果您没有运行其他 Web 服务器,请转到步骤 ** 5a ,否则请转到步骤 5b **。

** 5a。** 使用独立的内置 Web 服务器非常简单,尽管首先,您必须确保端口 80 未被阻塞并转发。确保将 example .com 替换为您打算使用的域名。

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

** 5b。使用网络根目录比使用内置的网络服务器需要更多的知识。确保 /var/www/example 指向可以从互联网访问的有效网站目录。另外,请确保将 example.com ** 替换为您用于网站的域名。

certbot certonly --webroot -w/var/www/example -d example.com -d www.example.com

6 运行这些命令后,系统将提示您输入一些详细信息,例如您的电子邮件地址。 Let’s Encrypt 跟踪提供的证书时需要这些详细信息,如果证书有任何问题,它们也可以与您联系。

填写所需信息后,它将继续从 Let ‘s Encrypt 获取证书。

如果遇到任何问题,请确保您有指向您 IP 的有效域名,请确保端口 80 和端口 443 处于未阻止状态,最后,如果您将 CloudFlare 用作 DNS 提供程序,请确保当前已设置它绕过其服务器。 certbot 客户端抓取的证书将存储在以下文件夹中。当然,用您自己的域名换出 example .com。
/etc/letsencrypt/live/example.com/

您会在这些文件夹中找到” 完整链” 文件 (fullchain.pem) 和证书的” 私钥” 文件 (privkey.pem)。确保您不允许其他人访问这些文件,因为它们可以保护您的 SSL 连接安全并将其标识为合法连接。

现在成功抓取了文件,您可以继续设置使用它们所需的任何软件。例如,如果您想要设置 NGINX 以使用 SSL 证书,请遵循下面的《 树莓派 SSL Nginx 指南》。

在 NGINX 中使用新的 SSL 证书

1 首先打开您的 NGINX 配置文件。这些通常存储在 **/etc/nginx/ /etc/nginx/sites-available/** 中

找到配置文件后,使用您喜欢的文本编辑器将其打开,例如,我的文件是 ** vim **。进入文件后,搜索文本块,如下所示。确保将您的 example .com 换成您正在使用的域名。

服务器{
        监听 80  default_server;
        听[::]:80 default_server;

        根目录/usr/share/nginx/html;
        index index.html index.htm;

        server_name example.com;

        位置/{
                try_files $ uri $ uri/= 404;
        }
}

2 对于此代码块,我们将需要进行一些更改。请按照我们的步骤操作,并在下面阅读我们对所做更改的解释。

听[::]:80 default_server

在下方添加

听 443  ssl;

此更改告诉 NGINX 开始在端口 443 上监听。端口 443 很重要,因为它是处理 HTTPS /SSL 流量的端口,并且将成为 Web 浏览器在使用 ** https://** 时尝试进行连接的端口。

server_name example.com;

在下方添加

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

此更改告诉 NGINX 在哪里可以找到我们的证书文件。它将使用它们来建立 SSL /HTTPS 连接。

“私钥” 是确保只有您的服务器才能读取和查看此文件的实际连接的安全,并且应确保此文件的安全,否则人们可能会截取和解密您的流量。

“全链” 包含通过 HTTPS 连接与服务器通信所需的所有信息,以及验证服务器是否为经过合法签名的 SSL 文件所需的信息。

3 完成所有这些更改后,您应该得到与以下显示类似的内容。当然,请确保使用域名替换了 ** example.com **。

对正确输入新数据感到满意后,可以保存并退出文件,然后重新启动 NGINX ,以便将其加载到新配置中。

服务器{
        监听 80  default_server;
        听[::]:80 default_server

        听 443  ssl;

        根目录/usr/share/nginx/html;
        index index.html index.htm;

        server_name example.com;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        位置/{
                try_files $ uri $ uri/= 404;
        }
}

4 现在,您应该使用我们通过 Let ‘s Encrypt 生成的证书为 NGINX Web 服务器建立完全可操作的 HTTPS 连接。

现在,您应该应该拥有一个由 Let ‘s Encrypt 提供的经过完全验证的 SSL 证书。您会发现本教程在许多项目中都很方便,尤其是基于服务器的树莓派项目

希望您发现本树莓派 SSL 教程对您有帮助,如果您有任何问题或反馈,请随时使用该论坛。

分享到