【发布时间】:2019-12-14 00:45:23
【问题描述】:
我们有一个静态站点代码,并希望在其上启用 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?它会返回 404 吗?您是否使用
nginx -t来查看您的配置是否有任何问题?进行更改后,您是否重新启动或重新加载nginx? -
是的,我做了 nginx -t 并且没有错误,但是重新启动 nginx 后网站无法加载
-
@ShawnC。我只能想到权限问题。好吧,这些证书只能通过
sudo访问 -
错误日志是否说明了什么
-
它什么也没说。我尝试了很多配置,例如tecadmin.net/nginx-force-redirect-to-https-with-www,但仍然没有成功。重定向有效,但它只是在 https 上没有做任何事情
标签: ssl nginx deployment ssl-certificate devops