3

我正在尝试导出客户端证书以用于 Web 浏览器。

目标是使用 <Location> 指令限制对管理区域的访问。我看过很多关于使用自签名 CA 的教程。您将如何使用第三方来做到这一点?

1) 如果 CA 是受信任的根 CA,我是否需要在客户端 pfx 中包含 CA?这两个例子我都看过。

没有 CA:

openssl pkcs12 -export -inkey KEYFILENAME -in CERTFILEFILENAME -out XXX.pfx

使用 CA:

openssl pkcs12 -export  -in my.crt- inkey my.key -certfile my.bundle -out my.pfx

2) 我是否仍需要在 httpd.conf 设置中包含 SSLCACertificateFile 以用于受信任的 CA?

SSLVerifyClient none
SSLCACertificateFile conf/ssl.crt/ca.crt
<Location /secure/area>
SSLVerifyClient require
SSLVerifyDepth 1
</Location>

http://www.modssl.org/docs/2.8/ssl_howto.html#ToC8

4

1 回答 1

5

您不能使用第三方 CA 签名证书颁发客户端证书。您必须拥有自签名 CA 才能颁发客户端证书并将此 CA 指定为SSLCACertificateFile

样本:

    SSLCertificateFile /etc/apache2/ssl/apache.cer # site certificate signed by verisign
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key # site key for certificate signed by verisign
    SSLCACertificateFile /etc/apache2/ssl/apachelca2.pem # your self signed CA

请注意,其中apachelca2.pem包含密钥和证书...颁发客户端证书的命令行:

openssl req -config /usr/share/apache2/ssleay.cnf -new -key client.key -out client.csr

openssl x509 -req -days 365 -CA /etc/apache2/ssl/apachelca2.pem -CAkey /etc/apache2/ssl/apachelca2.pem -CAcreateserial -in client.csr -extfile /usr/share/apache2/ssleay.cnf -extensions v3_req -out client.crt
于 2009-10-24T09:23:49.683 回答