为CAC卡身份验证配置Apache HTTPD的步骤
问题描述:
我已经分配了使网站使用CAC卡身份验证的任务。我使用Apache httpd web服务器安装了AWS Linux服务器。 是否有步骤设置Apache以启用用户Web浏览器读取其CAC卡,并提示他们的PIN号码。为CAC卡身份验证配置Apache HTTPD的步骤
答
嗨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。再次,你可能不需要它取决于你的项目。
您需要设置“基于证书的身份验证”。所有用户需要的是国防部根证书,并且软件随CAC阅读器一起提供。 – Gary