我是服务器管理员的新手。我最近使用 Digital Ocean 将 Ubuntu 从 v14 升级到了 v16,现在运行 Nginx 时似乎出现了问题nginx -t
。
sites-enabled/default
这是我的升级过程中保留的开始。
server_tokens off;
ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA$
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31557600; includeSubDomains";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-Xss-Protection "1";
有人可以就如何解决这些问题提供建议吗?
额外信息 不太确定是否相关,但我还必须创建一个新的 SSL 证书。我通过 Digital Ocean 控制面板执行了此操作,但除此之外没有做任何其他事情。
运行grep -r ssl_protocol /etc/nginx
我得到:
答案1
问题是这些指令实际上是重复的。
一个在主配置文件中nginx.conf
,另一个在default
。
您需要更改其中一个,以便它停止抱怨。它必须是给定server
上下文中唯一的。
答案2
Let's Encrypt 将直接管理这些属性。 Certbot
将以下行添加到您的nginx.conf
文件中:
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
为了让 Certbot 自动更新您的 SSL 证书,不应编辑此文件。
解决方案:从中删除(或#comment)重复的ssl_protocols
、ssl_prefer_server_ciphers
和。ssl_ciphers
nginx.conf