与其他网站在同一台服务器上的SSL

我有一个专用的IP VPS。 我在这台服务器上托pipe了几个网站。 我可以在其中一个网站上获得SSL证书,并且仍然在同一个IP上托pipe其他网站吗? 其他网站不需要SSL。 我问,因为我读了ssl需要一个专用的ip。

编辑:我在灯安装中使用Apache。

您需要为每个HTTPS主机+端口(或者确切地说,每个证书,因为某些证书可能具有多个主题替代名称)有明确的IP地址,因为客户端无法告诉服务器它想要哪个主机(因此应该是哪个证书)连接到HTTPS端口时,除非您使用服务器名称指示(这是一个SSL / TLS扩展似乎越来越支持)。

普通的HTTP虚拟主机运行在不同的端口上(通常是80),而不是HTTPS的端口(通常是443),不受此限制的影响。

即使您不使用SNI(在这种情况下,您仅限于使用每个IP +端口一个证书),您可以拥有任意数量的普通HTTP虚拟主机。

像这样的configuration应该可以工作(在VirtualHost指定端口号):

 <IfModule mod_ssl.c> <VirtualHost www.name1.example:443> ServerName www.name1.example SSLEngine on SSLCertificateFile /etc/... SSLCertificateKeyFile /etc/... ... </VirtualHost> </IfModule> # (optional) <VirtualHost www.name1.example:80> .... </VirtualHost> <VirtualHost www.name2.example:80> .... </VirtualHost> 

SSL证书以IP为基础工作。 如果其他站点稍后需要SSL,则需要您的站点具有单独的IP。

你没有提到你使用的是什么Web服务器,例如IIS,Tomcat等?
一般来说,你可以configuration一个Web服务器来为它所托pipe的一些网站要求SSL,例如你可以在IIS中这样做。
在Tomcat中,您必须启用ssl连接器并将其configuration为使用您的证书。
在这种情况下,访问网站必须来自安全端口。 需要纯http的网站仍然可以运行

SSL需要一个专用的IP地址

那么取决于你的意思。 通常,证书颁发给IP或FQDN,但不是强制性的。 缺点是,如果您的Web客户端检查主机名和证书主题名称,他们可能会拒绝连接。