【发布时间】:2017-08-16 14:23:26
【问题描述】:
我正在尝试通过一些 php 脚本启用客户端证书验证。我的服务器 -debian / lighttpd- 有一段时间有 SSL 证书,它可以工作。
它是这样配置的:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES128+EECDH:AES128+EDH"
ssl.pemfile = "/etc/lighttpd/certs/mydomain.net.pem"
ssl.ca-file =
"/etc/lighttpd/certs/my.domain.ca-bundle"
ssl.dh-file = "/etc/lighttpd/certs/dhparam.pem"
ssl.ec-curve = "secp384r1"
ssl.verifyclient.activate = "enable"
ssl.verifyclient.enforce = "disable"
ssl.verifyclient.username = "SSL_CLIENT_S_DN_CN"
ssl.verifyclient.depth = 1
ssl.verifyclient.exportcert = "enable"
}
我尝试在这里遵循相当不错的教程 https://gist.github.com/mtigas/952344
不同之处在于我没有创建 ca.key 和 ca.crt,因为我已经用我的 lighttpd 配置了它们(它们由 Comodo 签名)。
现在,我的第一个疑问是我应该使用什么来签署我的 client.crt?
这就是我所做的:
openssl genrsa -des3 -out client1.key 2048
openssl req -new -key client1.key -out client1.csr
现在我需要用 CA 签署它,我会说它是在 lighttpd.conf 中标识为 ssl.ca 文件的那个,对吧?
所以我猜是 my.domain.ca-bundle。
问题是,我如何获得它的密钥? 我尝试使用(-CAkey)与用于请求证书的 csr 一起使用的私钥,但我得到 X509_check_private_key: key values mismatch
我应该使用哪一个?
查看了一些教程和示例,但所有这些都假设您创建了自己的 ouw CA
【问题讨论】:
标签: ssl-certificate