ssl - Certbot 自动配置后站点未启用 ssl
问题描述
我们有一个静态站点代码,并希望在其上启用 ssl。该服务器还运行其他几个静态站点。这是我在配置中的内容
server {
root /home/ubuntu/projects/example-beta/dist;
index index.html index.htm index.nginx-debian.html;
server_name beta.example.com;
location / {
try_files $uri $uri/ =404;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/beta.example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/beta.example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = beta.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name beta.example.com;
listen 80;
return 404; # managed by Certbot
}
但它不选择ssl。我已将实际域名替换为example
. 几天来我一直在尝试不同的解决方案。对不起,我是 devOps 的新手。非常感谢任何解决方法或帮助
编辑
当前配置
server {
root /home/ubuntu/projects/savepakistan-beta/dist;
index index.html index.htm index.nginx-debian.html;
server_name beta.wesavepakistan.com;
location / {
try_files $uri $uri/ =404;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/beta.wesavepakistan.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/beta.wesavepakistan.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name beta.wesavepakistan.com;
return 301 https://$host$request_uri;
}
解决方案
我想第二个服务器块旨在将所有 HTTP 请求重定向到 HTTPS,我将用以下内容替换此块:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name beta.example.com;
return 301 https://$host$request_uri;
}
为了解决 SSL 问题,我会这样做:
- 确保您的证书是使用主机名创建的:
beta.example.com
- 从块中移出所有 ssl 指令 (
listen 443 ssl; ssl_certificate ...; etc
)location
并将它们放在server
块下。
推荐阅读
- python - 将数据写入xls并在python-django中下载
- magento2 - 如何覆盖在magento2中实现接口的类
- python - 检查多个条件的最快方法
- python - 遍历字典,查找重复条目并在重复项之间进行插值
- php - Laravel 使用 API 资源进行分页
- java - 在 Jetty 服务器中重新启动应用程序
- python - 如何删除所有非字母数字字符,除非是单词的一部分
- bash - 用于计数文件的 bash find 命令不起作用
- mysql - 以通用方式从 json 中存在的数组元素形成列
- c - 我正在尝试与 UART 通信以显示字母 A,但我的代码没有停止运行?