首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL端口号

SSL端口号
EN

Webmasters Stack Exchange用户
提问于 2013-03-25 08:58:41
回答 5查看 5.9K关注 0票数 0

我们有一个现有的web站点,端口80上有HTTP,端口443上有HTTPS。我现在正在添加第二个站点,据我所知,我不能在同一个SSL端口上托管两个站点。

因此,我的问题是:在第二个站点上,哪个端口号范围适合用作我的SSL端口?

EN

回答 5

Webmasters Stack Exchange用户

发布于 2013-03-25 21:03:06

实际上,您可以在端口443上托管多个SSL站点。apache配置文件中的以下代码将完成此任务。

否则,您可以使用任何您想要的端口。缺点是用户必须在URL中包含端口号(例如。https://yourdomain.com:445/)

代码语言:javascript
复制
## SSL (HTTPS) PORT 443
Listen 443
NameVirtualHost *:443

LoadModule ssl_module modules/mod_ssl.so
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin

<VirtualHost *:443>
  ServerName host1.com

  SSLEngine on
  SSLOptions +StrictRequire
  SSLProtocol -all +TLSv1 +SSLv3
  SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
  SSLCertificateFile    /etc/httpd/ssl/host1.crt
  SSLCertificateKeyFile /etc/httpd/ssl/host1.key
  SSLVerifyClient none
  SSLProxyEngine off

  SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
  CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  DocumentRoot /var/www/host1/

  <Directory "/var/www/host1/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Allow,deny
    Allow from all
  </Directory>

</VirtualHost>


<VirtualHost *:443>
  ServerName host2.com

  SSLEngine on
  SSLOptions +StrictRequire
  SSLProtocol -all +TLSv1 +SSLv3
  SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
  SSLCertificateFile    /etc/httpd/ssl/host2.crt
  SSLCertificateKeyFile /etc/httpd/ssl/host2.key
  SSLVerifyClient none
  SSLProxyEngine off

  SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
  CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

  DocumentRoot /var/www/host2/

  <Directory "/var/www/host2/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Allow,deny
    Allow from all
  </Directory>

</VirtualHost>
票数 1
EN

Webmasters Stack Exchange用户

发布于 2013-03-25 19:58:48

当你说“第二个网站”--你是指第二个域名吗?现在,您在一个集群上托管https://www.mycompany.com,并且希望在同一个集群上托管https://www.yourcompany.com?我想你要找的是“虚拟主机”:http://support.microsoft.com/kb/q190008

您仍然需要购买第二个SSL证书,但是您可以在标准端口下以相同的IP地址承载这两个证书(至少,这将提高用户对站点的信心)。

票数 0
EN

Webmasters Stack Exchange用户

发布于 2013-03-31 09:28:22

传统上,每个SSL绑定需要一个IP地址。在设置绑定时不可能添加主机标头。之所以如此,是因为主机标头是浏览器发送的HTTP报头的一部分,这些标头是作为SSL通信量的一部分进行加密的。为了读取主机名头,服务器必须首先解密通信量,但要做到这一点,它需要知道要使用哪个证书。为此,它需要主机头,这样您就进入了一个恶性循环。

一个解决方案是服务器尝试所有已安装的证书,并尝试解密请求。虽然这可能适用于安装了一些证书,但是对于拥有十分之一或数百个SSL网站的服务器来说,这是行不通的。这将大大降低服务器的速度,因为服务器必须对每个传入请求执行此操作。

这方面的解决方案是对称为服务器名称指示(SNI)的SSL协议的扩展。这将主机名添加到SSL协议中,该协议允许服务器在必须解密SSL通信之前查看主机头。IIS的任何版本都不支持此扩展(Windows 2012)。在客户端,OSX10.5.6和Windows或更高版本支持SNI。Windows上的SChannel不支持SNI,因此Windows上任何版本的Internet (甚至8.0)都不支持SNI。

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

https://webmasters.stackexchange.com/questions/45513

复制
相关文章

相似问题

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