非通配符 SSL 证书和子域

Joh*_*ley 3 ssl subdomain ssl-certificate apache-2.2

我想用 SSL 证书保护我的博客应用程序的登录表单,我还想为诸如Mint web stats 包之类的东西设置一些子域。这甚至可以使用非通配符证书,例如成本约为 20 美元的 GoDaddy“Turbo”证书吗?我真的不想支付通配符证书的费用。

需要明确的是,我想使用 SSL 的唯一地方是在主博客应用程序中,而不是在任何子域中。我想我在某处读到您不能这样做,因为如果您使用 SSL,则必须将 Apache 虚拟主机配置为使用 IP 地址。我想得到一个明确的答案。

谢谢。

the*_*ive 6

主要限制是使用一个 ip 地址您可以拥有一个 ssl 证书。

既然你只想要博客上的 ssl 那么你提出的设置就没有问题,只需让它成为唯一监听 443 的虚拟主机

# Virtualhosts on ports 80 and 443
NameVirtualHost *:80
NameVirtualHost *:443

# rewrite blog traffic to https
<VirtualHost *:80>
        ServerName blog.example.com
        DocumentRoot /var/www/blog
        RewriteEngine On 
        RewriteRule ^(.*)$ https://blog.example.com/$1 [R,L]
</VirtualHost>

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/server.crt
        SSLCertificateKeyFile /etc/apache2/ssl/server.key    
        ServerName blog.example.com
        DocumentRoot /var/www/blog
</VirtualHost>

<VirtualHost *:80>
        ServerName othersite.example.com
        DocumentRoot /var/www/other/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这里的一个小限制是,无论主机名如何,博客都会在这里捕获所有 https 流量,因此https://othersite.example.com将指向博客,并由于名称与证书不匹配而产生错误,但是一个IP地址是没有办法解决的。