我有 lighttpd 作为 Web 服务器,并在其上安装了基于 IP 的 SSL 证书。
我希望有一种方法可以让服务器可能获得的每个新 IP 上都有多个 SSL 证书。
例如,目前我有https://127.0.0.1
并且它可以工作,但是它的证书上的 CN = 127.0.0.1
,所以如果 Web 服务器从 DHCP 服务器获取新的 IP,比如说192.168.1.x
,服务器将导致 SSL 不匹配。
相反,我需要一个专门针对该 IP 地址的新证书。
如何创建基于多 IP 的 SSL 证书?当然是在 lighttpd 上。
答案1
我不确定我是否正确理解了你的问题,但是如果你想在服务器上的所有 IP 接口上提供相同的证书,请定义一个不提供 IP 的套接字:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/path/to/ssl/certificate.pem"
}
certificate.pem
这样,无论分配了什么 IP 地址,它都会在所有接口上使用相同的证书 ( ) 来监听并提供 https 服务
答案2
3 个选项:
$SERVER["socket"]
通过使用单独的块监听每个 IP 来使用不同的证书- 使用TLS/SNI(“服务器名称指示”)- 并非所有客户端都支持
- 使用 SubjectAltName,请参阅http://wiki.cacert.org/VhostTaskForce(我建议选择此选项)