若何实现多https主机共享一个IP地址的443端口(转载)

2周前 (11-27 18:57)阅读1回复0
披着凉皮的糖
披着凉皮的糖
  • 管理员
  • 注册排名4
  • 经验值92225
  • 级别管理员
  • 主题18445
  • 回复0
楼主

  因为全球互联收集的迅猛开展,IPv4资本逐步成为一种稀缺资本。传统的SSL证书安拆设置装备摆设办法(也是目前最不变的处理办法)就是为每个地址。

  假设间接根据毗连时不晓得客户端所恳求主机的名字,因而办事器端只会返回默认主机的证书。

  目前天威诚信(微信公家账号:itruschina)已有两种可行的计划来实现多个 端口:

  1. 利用撑持多个域名的证书(多域名证书或通配符证书)

  多域名SAN(SubjectAltName)证书可以在一张证书中最多撑持绑定25个域名。当需要为统一台物理办事器上的多个差别域名的主机设置装备摆设SSL证书时,可通设置装备摆设一张共享的多域名证书来实现IP地址和端口的共享。只需将所有虚拟站点的域名绑定到那张多域名证书中即可。

  赛门铁克(Symantec)通配符证书是在一个单一的证书中,通用名(域名)字段中包罗一个“*”通配符字段(*.example.com)。那使得该证书能够撑持无限造数量的多个子域名(主机)。那张Symantec通配符证书也可做为虚拟主机的共享证书,为所有回属于统一域名下的二级域名实现地址共享。

  比照多域名证书和通配符证书的产物特征可知,多域名证书遭到“SubjectAltName”字段的长度限造,最多撑持25个域名。而通配符证书固然撑持的域名数量不受限造,但只能撑持统一域名下的二级子域名。在证书的利用中需要根据证书产物特征加以合理抉择。

  多域名和通配符证书在设置装备摆设文件中的设置装备摆设:

  IIS上设置装备摆设端口,微软官方材料参考:

  

  cscript.exe adsutil.vbs set /w3svc/ site identifier /SecureBindings ":443 :host header”

  1.先设置为Web办事器和根据一般SSL证书的要求安拆胜利;

  2.为了平安起见,请以一般用户(Users组)登录Windows 2003 Server,运行:

  runas /profile /user: MyComputer \\ Administrator cmd

  此中:MyComputer为办事器主机名,运行后会提醒Administrator的密码,将以系统治理员身份运行DOS号令行。

  3.在DOS号令行下运行:

  cscript.exe adsutil.vbs set /w3svc/ site identifier /SecureBindings ":443:host header "

  此中: 可能需要明白指出adsutil.vbs的目次,如:C:\\Inetpub\\AdminScripts\\,而site identifier 就是IIS主动分配给每个网站的网站标识符(默认站点为1,其他站点可在掌握台中查询),host header 就是需要安拆多域型SSL证书和通配型SSL证书的Web办事器域名。

  4.退出DOS后,重启Web办事器后就已经生效了,能够都利用://拜候测试。

  Apache设置装备摆设端口:

  Listen 443

  NameVirtualHost *:443

  SSLCertificateFilecommon.crt;

  SSLCertificateKeyFile common.key;

  SSLCertificateChainFile ca.crt

  VirtualHost *:443

  ServerName

  /VirtualHost

  VirtualHost *:443

  ServerName

  /VirtualHost

  Nginx设置装备摆设端口:

  ssl_certificate common.crt;

  ssl_certificate_key common.key;

  server {

  listen 443;

  server_name ;

  ssl on;

  server {

  listen 443;

  server_name ;

  ssl on;

  2.开启SNI撑持

  SNI 是“Server Name Indication”的缩写,全称“主机名称指示”。开启SNI,能够容许一个443端口共享给多个虚拟站点,而且每一个虚拟站点都容许独立设置装备摆设其独一的证书密钥对。其长处是每个站点独享独一密钥对,更平安。缺点是SNI受客户端及办事端法式版本限造,部门客户端及办事端法式无法撑持。

  TLS主机名指示扩展(SNI,RFC6066)容许阅读器和办事器停止SSL握手时,将恳求的主机名传递给办事器,因而办事器能够得知需要利用哪一个证书来办事那个毗连。但SNI只得到有限的阅读器和办事器撑持。

  SNI 客户端撑持

  Firefox 2.0 及后续版本

  Opera 8.0及后续版本

  Internet Explorer 7.0及后续版本(要求Windows更低Vista系统)

  Google Chrome 所有版本(Windows版要求更低Vista系统)

  Safari 3.2.1及后续版本(Mac OS版要求更低X 10.5.6 ;Windows版要求更低Vista系统)

  SNI 办事器端撑持

  Nginx 0.5.32及后续版本

  Apache 2.2.12及后续版本

  IBM 及后续版本

  Apache 、Nginx 要求安拆 Openssl0.98f(0.98j起头默认撑持SNI) 或更高版本的 Openssl 撑持。

  SNI的设置装备摆设

  在Apache中设置装备摆设SNI

  在Apache设置装备摆设文件中通过利用为差别Web Server指定差别证书文件停止设置装备摆设。

  Listen 443

  NameVirtualHost *:443

  VirtualHost *:443

  ServerName

  SSLCertificateFile

  SSLCertificateKeyFile

  SSLCertificateChainFile ca.crt

  /VirtualHost

  VirtualHost *:443

  ServerName

  SSLCertificateFile

  SSLCertificateKeyFile

  /VirtualHost

  开启虚拟主机设置装备摆设

  在Nginx中设置装备摆设SNI

  Nginx 中通过 nginx -v 号令查询当前已安拆的版本对 SNI 功用的撑持。在设置装备摆设文件中通过

  server {

  listen 443;

  server_name ;

  ssl on;

  ssl_certificate server1.crt;

  ssl_certificate_key server1.key;

  server {

  listen 443;

  server_name ;

  ssl on;

  ssl_certificate server2.crt;

  ssl_certificate_key server2.key;

  开启SNI撑持。

  在IBM

  IBM 文件中来为差别虚拟站点设置装备摆设利用差别证书。

  利用 I Key Manager 东西翻开 。

  Listen *:443

  NameVirtualHost *:443

  VirtualHost *:443

  ServerName

  SSLEnable

  SSLServerCert example1 # example1 是在 kdb 文件中,为 的办事器证书密钥对设置的证书别号

  /VirtualHost

  VirtualHost *:443

  ServerName

  SSLEnable

  SSLServerCert example2 #example2是在 kdb 文件中,为 的办事器证书密钥对设置的证书别号

  /VirtualHost

  SSLDisable

  KeyFile /opt/IBM/

0
回帖

若何实现多https主机共享一个IP地址的443端口(转载) 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息