我正在使用一些提供的证书来配置Nginx。
起初,我尝试使用自签名证书,并且可以使用。 我只是用过:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
并编辑我的自我证书文件:
$ sudo nano /etc/nginx/snippets/self-signed.conf
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
并包括pem文件:
$ /etc/nginx/snippets/ssl-params.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem;
生成bak文件
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
并编辑文件:/etc/nginx/sites-available/default
使用
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name server_domain_or_IP;
return 302 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
....
}
要测试一切正常,请执行:
sudo nginx -t
确定,可以正常工作,并显示一条消息:
此连接不安全
没关系,因为它是自签名证书。
但是,此刻,我的提供者向我发送了2个文件,以替换为有效的pem文件:
yourdomain.app-key.pem
和yourdomain.app-cert.pem
我将它们放置在正确的位置,并使用以下命令更新文件:
$ sudo nano /etc/nginx/snippets/self-signed.conf
ssl_certificate /etc/ssl/certs/yourdomain.app-cert.pem;
ssl_certificate_key /etc/ssl/private/yourdomain.app-key.pem;
要测试一切正常,请执行:
sudo nginx -t
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
但是,当我尝试访问该网站时,仍然会出现我自己的自签名证书。
我在此过程中失去了什么步骤?
答案 0 :(得分:1)
运行sudo nginx -t
时,您只是在测试配置不应用。尝试重新加载nginx服务(实际命令取决于您的操作系统)
$ sudo service nginx reload
或
$ sudo systemctl reload nginx
然后重新访问该站点,如果该站点仍然失败,请尝试使用专用浏览器模式来验证它不是某种浏览器缓存问题