加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx可以在不同的服务器块中使用不同的SSL协议吗?

发布时间:2020-12-13 21:22:39 所属栏目:Nginx 来源:网络整理
导读:我正在尝试设置一个主机名来演示一个糟糕的SSL配置,我遇到了一些问题.我可以指定一些不好的密码套件,但是nginx似乎忽略了协议选择. server { listen 443 spdy ssl; keepalive_timeout 70; server_name example.co.uk; client_max_body_size 10M; ssl_certifi

我正在尝试设置一个主机名来演示一个糟糕的SSL配置,我遇到了一些问题.我可以指定一些不好的密码套件,但是nginx似乎忽略了协议选择.

server {
    listen 443 spdy ssl;
    keepalive_timeout 70;
    server_name example.co.uk;
    client_max_body_size 10M;

    ssl_certificate /path/to/ssl.crt;
    ssl_certificate_key /path/to/ssl.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ...
}

server {
    listen 443 spdy ssl;
    keepalive_timeout 70;
    server_name weak.example.co.uk;
    client_max_body_size 10M;

    ssl_certificate /path/to/weakssl.crt;
    ssl_certificate_key /path/to/weakssl.key;
    ssl_protocols SSLv3;
    ...
}

Nginx可以使用我指定的不同密码套件,但似乎使用来自第一个服务器块的协议,以便weak.example.co.uk具有TLSv1 / 1.1 / 1.2且不支持SSLv3.

是否可以为每个服务器块指定不同的协议?

最佳答案
>使用nginx -t检查配置是否已静态验证
>检查配置是否通过监视主级别定义的错误日志动态验证,同时发出重新加载(服务nginx重新加载或kill -SIGHUP< nginx主PID>)
>在每个服务器中创建一个测试位置(见下文)
>确保您的nginx是使用SNI扩展构建的(如果使用预先构建的软件包,通常是的)
>确保正在使用正确的服务器:如果通过SNI选择域名失败或SNI不可用,nginx将回退到默认服务器以提供内容.除非明确指定,否则默认服务器是在配置文件中找到的第一个服务器.
>确保清理浏览器缓存(并且服务器和浏览器之间的任何缓存都会被更新/清除)

如果要提供错误的证书(没有SNI或服务器选择错误),您通常会收到证书警告,因为请求的域名与证书的域名不匹配.

这将显示当前连接使用的协议:

location /SSLProtocol {
    return 200 $ssl_protocol;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读