首页 > 系统相关 >TLS SNI(TLS Server Name Indication)配置:F5、Nginx和IIS

TLS SNI(TLS Server Name Indication)配置:F5、Nginx和IIS

时间:2024-01-01 11:00:47浏览次数:31  
标签:TLS Name IIS ssl default later SNI SSL


TLS Server Name Indication (TLS SNI)

TLS Server Name Indication (TLS SNI),used when a single virtual IP server needs to host multiple domains.

TLS SNI Support 即一个 IP 地址上支持多个域名的 SSL 站点,或者说一个 IP 上支持绑定多个 SSL 证书。

支持 TLS SNI 的浏览器

Browsers/clients with support for TLS server name indication:

  • Opera 8.0 and later (the TLS 1.1 protocol must be enabled)
  • Internet Explorer 7 or later (under Windows Vista and later only, not under Windows XP)
  • Firefox 2.0 or later
  • Curl 7.18.1 or later (when compiled against an SSL/TLS toolkit with SNI support)
  • Chrome 6.0 or later (on all platforms - releases up to 5.0 only on specific OS versions)
  • Safari 3.0 or later (under OS X 10.5.6 or later and under Windows Vista and later)

To find out if your browser supports SNI, you can go to https://alice.sni.velox.ch/.

F5 BIG-IP TLS SNI Support

  • 版本支持

主流支持版本(v11.6及以上)都可以支持,参看官方文档:v11.6v12.1v13.1

  • 配置要点

参看:K13452

分别创建多个域名的(Client or Server)SSL Profile

Server Name,分别填写域名(可选),如 www.a.com,支持通配符 *.a.com 也支持 * 代表任意域名,另外一个如 www.b.com

Default SSL Profile for SNI,其中一个域名需要勾选作为默认

Virtual Servers 的 SSL Profile(Client or Server)同时选择上述创建的多个 SSL Profile

注意:在 BIG-IP 13.x 及以前版本,多个 SSL Profile 的 Ciphers 和 Client Authentication 属性需要配置一致(14.x 及以后版本无此要求)

  • iRules

另外请注意,没有自动机制允许 BIG-IP 根据在客户端 SSL Hello 消息中接收到的 “Server Name” 值来选择 SSL Profile。

不过,在 iRule 的额外帮助下,您可以根据从客户机收到的初始 HTTP 请求中接收的“主机名”报头值强制选择正确的 serverssl profile。

when HTTP_REQUEST {
    set hostname [getfield [HTTP::host] ":" 1]
}

when SERVER_CONNECTED {
    switch -glob [string tolower $hostname] {
    "siteA.com" {
        SSL::profile serverssl-siteA
    }
    "siteB.com" {
        SSL::profile serverssl-siteB
    }
    default {
    #default serversssl profile to be selected if Host header value cannot be matched with predefined values
        SSL::profile serverssl
    }
    }
}

Nginx TLS SNI Support

  • 版本支持

参看官方文档

OpenSSL supports SNI since 0.9.8f version if it was built with config option “–enable-tlsext”. Since OpenSSL 0.9.8j this option is enabled by default. If nginx was built with SNI support, then nginx will show this when run with the “-V” switch:

$ nginx -V
...
TLS SNI support enabled
...

Nginx 0.x 版本已经支持 TLS SNI

  • The SNI support status has been shown by the “-V” switch since 0.8.21 and 0.7.62.
  • The ssl parameter of the listen directive has been supported since 0.7.14. Prior to 0.8.21 it could only be specified along with the default parameter.
  • SNI has been supported since 0.5.23.
  • The shared SSL session cache has been supported since 0.5.6.
  • Version 1.9.1 and later: the default SSL protocols are TLSv1, TLSv1.1, and TLSv1.2 (if supported by the OpenSSL library).
  • Version 0.7.65, 0.8.19 and later: the default SSL protocols are SSLv3, TLSv1, TLSv1.1, and TLSv1.2 (if supported by the OpenSSL library).
  • Version 0.7.64, 0.8.18 and earlier: the default SSL protocols are SSLv2, SSLv3, and TLSv1.
  • Version 1.0.5 and later: the default SSL ciphers are “HIGH:!aNULL:!MD5”.
  • Version 0.7.65, 0.8.20 and later: the default SSL ciphers are “HIGH:!ADH:!MD5”.
  • Version 0.8.19: the default SSL ciphers are “ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM”.
  • Version 0.7.64, 0.8.18 and earlier: the default SSL ciphers are
    ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP”.
  • 一般配置方法
http {

    ......

    server {
        listen       443 ssl http2;
        server_name  a.sysin.org;
        ssl_certificate     a.sysin.org.crt;
        ssl_certificate_key a.sysin.org.key;
        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_ciphers 'AES128+EECDH:AES128+EDH';
        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

        charset utf-8;
        #access_log  /var/log/nginx/host.access.log  main;

        location / {
            root   /usr/share/nginx/html;
            index  index.php index.html index.htm;
        }
    }

    server {
        listen       443 ssl http2;
        server_name  b.sysin.org;
        ssl_certificate     b.sysin.org.crt;
        ssl_certificate_key b.sysin.org.key;
        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_ciphers 'AES128+EECDH:AES128+EDH';
        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

        charset utf-8;
        #access_log  /var/log/nginx/host.access.log  main;

        location / {
            root   /usr/share/nginx/html;
            index  index.php index.html index.htm;
        }
    }
}

IIS TSL SNI Support

参看官方文档

  • 版本支持

要求 IIS 8.0 (Windows 2012)及以上版本

  • 配置要点

创建多个 HTTPs 站点时,需要填写以下内容

Hostname: (注意与 SSL 证书名称保持一致)

Require Server Name Indication: 需要勾选


标签:TLS,Name,IIS,ssl,default,later,SNI,SSL
From: https://blog.51cto.com/sysin/9056591

相关文章

  • 无涯教程-Java 正则 - Matcher String group(String name)函数
    java.time.Matcher.group(Stringname)方法返回在上一次匹配操作期间给定组捕获的输入子序列。Stringgroup(Stringname)-声明以下是java.time.Matcher.group(Stringname)方法的声明。publicStringgroup(intgroup)group - 该匹配器模式中捕获组的索引。String......
  • --{module_name}_binary_host_mirror和--{module_name}_binary_site
    --{module_name}_binary_host_mirror和--{module_name}_binary_sitedemo//.npmrc文件sass_binary_site=https://npmmirror.com/mirrors/node-sass/nodejieba_binary_host_mirror=https://npm.taobao.org/mirrors/nodejiebagypgyp全称GenerateYourProjects(构建你的项目)n......
  • Spring Boot学习随笔- 集成MyBatis-Plus,第一个MP程序(环境搭建、@TableName、@TableId
    学习视频:【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备!引言MyBatis-Plus是一个基于MyBatis的增强工具,旨在简化开发,提高效率。它扩展了MyBatis的功能,提供了许多实用的特性,包括强大的CRUD操作、条件构造器、分页插件、代码生成器等。MyBati......
  • iis + php
    下载php非线程安全版本:https://windows.php.net/downloads/releases/archives/重命名php.ini-recommend===>php.ini 修改配置文件: 其中wwwroot为项目文件夹:在wwwroot下创建index.php等会可以用到 添加功能:   添加cgi(可以通过以管理员身份的powershell安......
  • ApplicationHost.config文件被破坏导致IIS崩溃
    https://www.8a.hk/index.php/news/content/4105.html 今天临近下班时,突然出现了一个重大BUG。服务器IIS崩溃了,所有的站点都打不开了。提示错误:“配置文件的XML格式不正确”。一下就惊到了,感觉自已又要加班了。 根据提示,找到了applicationHost.config文件,打开后,发现,里面全部......
  • 用IIS搭建FTP服务器
    注意:经实测,IIS会限制传输速度,已经不推荐使用IIS来搭建,推荐使用FTP点击跳转:用FileZilla搭建FTP服务器目的通过FTP,让电脑和手机之间能够无线传输数据开启IIS功能快捷键win+s搜索控制面板打开点击程序,点击启用或关闭windows功能找到InternetInformationServices,勾选FTP服......
  • 年底了,网站被挂马了,关于IIS被陌生DLL劫持(新人发帖,写的不好的地方,请多多担待)
    一上班被分到两个需要杀毒的站点,情况是SEO被劫持 出现一些博彩信息,但是打开确实正常内容,使用站长工具的网站被黑检测功能,发现网站的HEAD前面加载一对加密的东西 一开始我使用D盾扫描网站,删除了一些后门文件,然后再去站长工具检测,发现还是属于被黑的情况。 然后我去排查一......
  • windows 2008 r2 iis https 配置方法
    windows2008r2是老系统了,但是项目需要安装https。安装时,遇到问题,需要以下步骤解决。1.安装系统补丁Windows6.1-KB3080079-x64.msuhttps://download.microsoft.com/download/F/4/1/F4154AD2-2119-48B4-BF99-CC15F68E110D/Windows6.1-KB3080079-x64.msu2.下载IISCrypto.exe......
  • 在 IIS 上生成经典 ASP 网站
    场景:在IIS上生成经典ASP网站本文档将指导你完成安装IIS和配置经典ASP网站的过程。经典ASP是服务器端脚本环境,可用于创建和运行动态Web应用程序。借助ASP,你可以将HTML页面、脚本命令和COM组件组合在一起,从而创建易于开发和修改的交互式网页。经典ASP是ASP.......
  • logstash抽取clickhouse数据库偶现网络错误异常并提示FORMAT TabSeparatedWithNamesAn
     如上图错误信息所示,可以看到第一次sql查询是正常的,在第二次offset偏移的时候报了网络错误。起初的想法就是clickhouse的问题,把sql粘贴出来放入clickHouse中单独执行发现sql并无问题。然后又认为是logstash的问题并分别下载了logstash-7.3.1、logstash-7.17.15、logstash-8.11.......