首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx多个ssl配置

nginx多个ssl配置
EN

Stack Overflow用户
提问于 2015-08-31 19:18:13
回答 1查看 283关注 0票数 0

我在nginx.conf中配置了ssl,如下所示,它工作正常:

代码语言:javascript
复制
    server {
        listen 8443 ssl;
        ssl_certificate /usr/local/nginx/security/test.crt;
        ssl_certificate_key /usr/local/nginx/security/test.key;
        location / {
        }
    }

但是上面配置的ssl证书不支持ie6,所以我申请了另一个组证书,但它将是灰色的锁,而不是绿色的锁。所以我只想对ie6使用新的组证书,对于其他浏览器,我仍然想使用旧的。我想如果有下面这样的代码就可以解决我的问题:

代码语言:javascript
复制
server {
    listen 8443 ssl;
    if ($http_user_agent ~ "MSIE 6.0" ) {
       ssl_certificate /usr/local/nginx/security/test_ie6.crt;
       ssl_certificate_key /usr/local/nginx/security/test_ie6.key;
    }else{
       ssl_certificate /usr/local/nginx/security/test.crt;
       ssl_certificate_key /usr/local/nginx/security/test.key;
    }
    location / {
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-31 19:32:41

不可能以您预想的方式为不同的浏览器提供不同的证书。您尝试基于用户代理检测浏览器版本,但此信息仅在成功TLS握手后可用,即在证书已发送之后。

但是,如果多个服务器位于相同的IP地址之后,现代浏览器需要使用Server Name Indication来指示它们要连接到哪台服务器。较旧的浏览器,如XP上的IE 8.0和IE 6.0都不支持此扩展。因此,您可以在具有特定server_name (server_name example.com)的部分中为特定主机名(SNI)配置证书,然后在默认部分(server_name _)中为站点配置默认证书。支持SNI的浏览器将使用特定于名称的证书,而所有其他浏览器将回退到默认证书。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32310002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档