因业务需要,先需要给 IP 配置自签名的证书,配置完后发现原本可以的网站打不开了,这个场景太少了,搜索了一天无果,问了几个朋友页没有头绪。所以上论坛来请教一下各位大神。
先贴上配置文件,下面这个是原本正常的网站配置文件domain.conf
。
server {
listen 80;
server_name www.domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
#listen 443 ssl;
listen 443 ssl;
server_name www.domain.com;
access_log /data/logs/www.log main;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/fullchain.key;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
ssl_protocols TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
return 222;
}
下面是基于 IP 的自签名证书的配置文件ipssl.conf
:
server {
listen 443 ssl http2;
server_name 192.168.200.136;
root /tmp/webroot/ip;
index index.html;
access_log /data/logs/ip_access.log;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
ipssl.conf
的时候,网站是可以正常打开的,但加了以后就打不开了,而且不同浏览器的提示不一样,Firefox 的提示是
搜索的时候参考了很多文档,比如 ququ 大神的这篇文章,还有其他,基本上确定应该是和 http2 有关,我把配置里面的 http2 去掉后,也确实可以打开网站了,但浏览器都提示说我的网站不安全,使用了脆弱的加密方式,如下图。
突然想到一点,如果我把 firefox 的about:config
里的network.http.spdy.enabled.http2
设置为 false,就可以打开网站,网址栏锁头标志上提示不安全,其中的详情和图 4 里的详情是一模一样的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.