当您想要使用Let's Encrypt设置NGINX时,可以通过使用应用程序certbot自动完成。
安装nginx的certbot:
在Ubuntu/Debian上:
sudo apt install python-certbot-nginx
在Arch Linux上:
sudo pacman -S certbot-nginx
在Centos上:
sudo yum install epel-release
sudo yum install certbot-nginx
然后,您需要为您的域名创建一个非常简单的配置文件。该目录应对所有提到的操作系统保持一致。
/etc/nginx/sites-available/example.com
在这里,你只需要添加这些信息:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
location / {
proxy_pass http:
}
}
然后创建符号链接以激活域名
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
请记得将 example.com 更改为您自己的域名,并将 proxy_pass 切换为您托管文件的服务或目录。
现在您应该重新启动 NGINX:
sudo nginx -t
如果您的配置文件中存在错误,此命令将返回一个错误。
如果一切正常,请重新启动NGINX。
sudo systemctl restart nginx.service
现在 certbot 出现在画面中:
sudo certbot --nginx -d example.com -d www.example.com
此时,Let's Encrypt 将尝试连接您的 Nginx 服务器,如果一切正常 - 这意味着:
- 防火墙设置允许端口 80 和 443 通过
- 网络中的端口转发允许通过这两个端口
然后,您将可以选择 简单 或 安全 访问。我建议选择 安全 选项。
当您点击 [enter] 后,该过程将完成,Certbot 将生成所有证书文件并将它们添加到正确的路径中。
您的配置文件在 /etc/nginx/sites-avalible/example.com
中将被更新为所有正确的设置。
您可能需要再次重新启动 Nginx。
希望这对您有所帮助。祝您好运!
[来源]
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-centos-7
https://wiki.archlinux.org/index.php/Certbot#Nginx
cert.pem
重命名为whatever.crt
,将key.pem
重命名为whatever.key
,这样就可以正常工作了,无需转换。没有crt
和key
格式。您只有二进制格式(称为DER)或Base64编码格式(PEM)。顺便说一句,您的问题与编程无关,不属于此处的主题。 - Patrick Mevzek