1

我被分配了使网站使用 CAC 卡身份验证的任务。我已经使用 Apache httpd Web 服务器设置了 AWS Linux 服务器。是否有人逐步设置 Apache 以使用户的 Web 浏览器读取他们的 CAC 卡并提示他们输入密码。

4

1 回答 1

1

CAC 认证与任何其他 PKI 认证(可以称为相互认证或客户端认证)没有区别。这意味着除了浏览器验证服务器证书(检查服务器证书是否由受信任的机构颁发)之外,服务器还将要求客户端提交服务器将验证的证书。

这是您需要的:服务器证书、与该证书一起使用的私钥,以及带有根证书和中间 ca 证书的信任库。查看此文档以供参考:https ://httpd.apache.org/docs/2.4/ssl/ssl_howto.html 。

在最简单的设置中,您需要一个看起来像这样的 VirtualHost(我没有测试过这个配置。只是从上面提到的站点复制它。它可能需要调整):

<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
     # server certificate
    SSLCertificateFile "/path/to/www.example.com.cert" 
     # private key
    SSLCertificateKeyFile "/path/to/www.example.com.key" 
    SSLVerifyClient require
    SSLVerifyDepth 1
     # trust store
    SSLCACertificateFile "conf/ssl.crt/ca.crt"
</VirtualHost>

正如我提到的,这是最基本的设置。这可能足以满足您的需要,但要使其更加健壮,您需要验证证书是否未被吊销。执行此操作的两种方法是下载证书撤销列表(这对于颁发 CAC 证书的 CA 的数量是不切实际的),或者使用 OSCP 响应程序。我个人没有使用 HTTPD 进行吊销检查(仅在 Java 世界中并以编程方式),但上述文档中有一节介绍了 OCSP。同样,根据您的项目,您可能不需要它。

于 2017-10-23T21:16:50.917 回答