我对此很陌生,还没有在 nginx 中安装 SSL 证书,所以请原谅我的无知。
我有一个来自 godaddy 的证书,但我似乎找不到在我的 linux 服务器(ubuntu 18.04)上使用它的方法。
我将介绍我到目前为止所做的事情。
Godaddy证书
在创建 SSL 证书的过程中,godaddy 首先提供了两个文件,一个带有您的 SSL 证书密钥,另一个带有 CSR(不确定它是什么)。
系统会提示您下载 SSL 证书,这是另外两个文件,一个是某种捆绑包,另一个是其他东西(来自他们的网站)将您的 SSL 证书文件和证书捆绑包文件复制到您的 Nginx 服务器。这两个文件都是.crt
路由器
我已启用任何传入的 443 以将流量重定向到我的服务器。
服务器 Ubuntu 18.04
我遵循了他们不太有用的教程。
https://uk.godaddy.com/help/nginx-install-a-certificate-6722
https://www.godaddy.com/garage/how-to-install-an-ssl-certificate-on-ubuntu-for-nginx/
编辑了 nginx 配置文件
/etc/nginx/sites-available/myweb
server {
listen 443;
listen [::]:443;
ssl on;
ssl_certificate_key /etc/nginx/ssl/myweb.key;
ssl_certificate /etc/nginx/ssl/certf.crt;
ssl_certificate /etc/nginx/ssl/b_certf.crt;
root /media/world/myweb/origin;
index index.html index.htm index.nginx-debian.html;
server_name 192.168.0.9 lmyweb.com www.myweb.com;
location / {
try_files $uri $uri/ =404;
}
}
访问我的网站时,我得到 404 this site can't be reach。
我错过了什么吗?也许在 Nginx 中有一些我不知道的启用?或者我在错误的文件中配置了上述内容?
任何帮助将不胜感激。
所以你陷入了很多陷阱,以及你的 SSL 证书问题。
因此,让我们一点一点地了解这一点。
NGINX 的 SSL 证书
与 Apache 不同,您只能
ssl_certificate
在服务器块中提供单行;额外的会导致问题或忽略证书的事情。NGINX 证书需要按此顺序包含以下内容:
serer_name
的特定证书您通常可以通过类似的方式执行此操作
cat sitecert.crt ca-cert.crt > sitecert.fullchain.pem
,然后sitecert.fullchain.pem
在 NGINX 配置中使用该文件。SSL 配置
SSL 的 NGINX 配置需要如下所示(请注意,其他配置位被剥离或替换
# ...
为表示您需要在此时为您的配置的其余部分配置位):这解决了几个问题:
这使用了正确的
listen 443 ssl;
线路。您不应该使用ssl on;
它,因为它被认为是旧的并且已弃用。这使用了完整的证书链和密钥,并以合理的顺序排列它们。