我们有一个现有的web站点,端口80上有HTTP,端口443上有HTTPS。我现在正在添加第二个站点,据我所知,我不能在同一个SSL端口上托管两个站点。
因此,我的问题是:在第二个站点上,哪个端口号范围适合用作我的SSL端口?
发布于 2013-03-25 21:03:06
实际上,您可以在端口443上托管多个SSL站点。apache配置文件中的以下代码将完成此任务。
否则,您可以使用任何您想要的端口。缺点是用户必须在URL中包含端口号(例如。https://yourdomain.com:445/)
## 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>发布于 2013-03-25 19:58:48
当你说“第二个网站”--你是指第二个域名吗?现在,您在一个集群上托管https://www.mycompany.com,并且希望在同一个集群上托管https://www.yourcompany.com?我想你要找的是“虚拟主机”:http://support.microsoft.com/kb/q190008
您仍然需要购买第二个SSL证书,但是您可以在标准端口下以相同的IP地址承载这两个证书(至少,这将提高用户对站点的信心)。
发布于 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。
https://webmasters.stackexchange.com/questions/45513
复制相似问题