为CAC卡身份验证配置Apache HTTPD的步骤

为CAC卡身份验证配置Apache HTTPD的步骤

问题描述:

我已经分配了使网站使用CAC卡身份验证的任务。我使用Apache httpd web服务器安装了AWS Linux服务器。 是否有步骤设置Apache以启用用户Web浏览器读取其CAC卡,并提示他们的PIN号码。为CAC卡身份验证配置Apache HTTPD的步骤

+1

您需要设置“基于证书的身份验证”。所有用户需要的是国防部根证书,并且软件随CAC阅读器一起提供。 – Gary

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

以下是您将需要的内容:服务器证书,与该证书一起使用的私钥以及具有根证书和中级证书的信任库。看看这个文档以供参考:https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html

在最简单的设置你想要一个虚拟主机看起来是这样的(我没有测试过这个配置单从上述网站复制它,它可能需要进行调整。):

<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。再次,你可能不需要它取决于你的项目。