-
在Debian 8服务器上安装让我们用Nginx加密免费TLS/SSL证书
本指南介绍了如何使用Debian 8服务器上的Nginx服务器获取并安装Let's Encrypt free TLS/SSL证书。 安装Debian 8服务器上的加密客户端 Ubuntu16.04存储库已经有了让我们加密客户端。Debian测试库中也提供了该客户端。你们中的一些人可能会想,“哇,那么我们可以让jessie backports repo在Debian 8上安装Let's Encrypt client!”事实上,当我发现Debian 9存储库中包含Let’s Encrypt client时,我就是这么想的。 所以,让我们来开源。使用nano文本编辑器列出文件。 sudo nano /etc/apt/sources.list 然后在文件末尾添加以下行。 deb http://ftp.debian.org/debian jessie-backports main 然后更新本地包索引并安装letsencrypt。 sudo apt-get update sudo apt-get install letsencrypt -t jessie-backports 使用独立插件获得免费的TLS/SSL证书 当我们使用独立插件应用Let's Encrypt的TLS/SSL证书时,letsencrypt客户端将临时启动一个Web服务器,该服务器监听端口80。因此,如果您之前安装了Nginx Web服务器,并且Nginx正在运行,那么您需要使用以下命令停止它,以释放端口80。 sudo systemctl stop nginx 或 sudo service nginx stop 然后发出以下命令以获取证书。 sudo letsencrypt certonly --email <your-email-address> -d <your-domain-name> 子命令certonly告诉letsencrypt客户端获取证书,但不要安装证书,因为letsencrypt客户端在编写时不支持Nginx的自动配置。 电子邮件地址用于紧急通知和丢失的密钥恢复。替换<;您的电子邮件地址>;你的真实电子邮件地址-d选项用于指定您的域名。替换<;你的域名>;用你的真实域名。您应该将域名指向Debian 8服务器的IP地址,否则域验证将失败。 系统将要求您选择身份验证方法。选择第二个选项并按Enter键。 接下来,按Enter键输入Web根目录。 然后输入您的web根目录。两个常见的web根目录是/var/www/html和/usr/share/nginx/html/。 几秒钟后,您的证书将由Let’s Encrypt颁发。 通过添加以下选项,可以自动完成上述过程。 --webroot -w /var/www/html/ --webroot告诉letsencrypt客户端使用webroot插件-w是--webroot路径的缩写/var/www/html/是一个常见的Web根目录。因此,您可以使用以下一个命令来获取TLS/SSL证书,而无需停止Nginx。 sudo letsencrypt certonly --email <your-email-address> -d <your-domain-name> --webroot -w /var/www/html 您可能需要在Nginx服务器配置文件中添加以下指令,以允许访问。我很熟悉目录。 location ~ /.well-known { allow all; } 续订让我们加密TLS/SSL证书 letsencrypt的配置目录是/etc/letsencrypt,在该目录下可以找到续订目录。在/etc/letsencrypt/renewal下有一些conf文件,它们定义了证书的更新方式。 运行以下命令在Debian 8服务器上测试续订过程: sudo letsencrypt renew --dry-run 您会发现letsencrypt客户端使用的插件和选项与最初颁发证书时使用的插件和选项相同。这是默认行为。 要更改用于续订的插件或选项,必须编辑/etc/letsencrypt/renewal下的conf文件。 假设您使用独立插件获取证书,但现在您想使用Webroot插件更新证书,因为您不想停止Nginx,然后打开conf文件。 sudo nano /etc/letsencrypt/renewal/your-domain-name.conf 保持前四行不变,将更新参数更改为以下参数。 # Options used in the renewal process [renewalparams] authenticator = webroot installer = None account = 2d29325aa8757ab4198e96d1c7b46eb6 webroot_path = /var/www/html, [[webroot_map]] your-domain-name = /var/www/html 你的账号可以在/etc/letsencrypt/accounts/acme-v01上找到。应用程序编程接口。letsencrypt。org/directory/。 然后再次测试更新过程。 sudo letsencrypt renew --dry-run --webroot-path /var/www/html 您将看到它现在正在使用Webroot插件更新证书。 要开始真正的更新过程,只需删除--dry run选项。 sudo letsencrypt renew --webroot-path /var/www/html 上述命令将尝试续订30天内到期的证书。您可以使用以下命令打开root用户的crontab文件。 sudo crontab -e 创建一个cron作业。 0 5 * * * letsencrypt renew --webroot-path /var/www/html