通过 DOD PKI CAC 进行 Apache 身份验证

Posted

技术标签:

【中文标题】通过 DOD PKI CAC 进行 Apache 身份验证【英文标题】:Apache authentication via DOD PKI CAC 【发布时间】:2010-10-24 12:05:13 【问题描述】:

如何使用 Department of 实现 Apache(在 Linux 中)身份验证 国防CAC卡?我听说可以做到,但没有遇到任何细节。 目前我们使用 Windows Active Directory 进行 Apache 身份验证,但仅使用 登录名/密码。很快要求将仅使用 CAC 卡。任何提示 将不胜感激。

【问题讨论】:

有什么更新吗?这回答了吗? 【参考方案1】:

为 Apache Tomcat 配置 2-way SSL(版本 6.0.18)

    在文本编辑器中打开 server.xml;位于您的 tomcat 目录中<TOMCAT_HOME>\conf\server.xml 查找此文本块并取消注释:
<Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25"
               maxSpareThreads="75"
               enableLookups="false"
               disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />

3。修改此文本块如下:

  <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                 maxThreads="150" scheme="https" secure="true"
                 clientAuth="true" sslProtocol="TLS"
                 keystoreFile="<CERTIFICATES_DIR>\localhost.jks"
                 keystorePass="password"
                 truststoreFile="<CERTIFICATES_DIR>\localhost.jks"
                 trustStorePass="password"/>
    启动 Tomcat 并使用您喜欢的浏览器导航到 https://localhost:8443/。 浏览器会提示您输入客户端证书(注意:如果没有提示您输入证书,您可以尝试在 IE 中使用工具 > 互联网选项 > 证书 > 导入将其导入)。选择正确的客户端证书。 如果您看到一个网站,则说明 Tomcat 已安装并且运行正常。如果您看到找不到页面或其他错误,则说明 Tomcat 安装或配置不正确。 为客户端 SSL 支持设置 Tomcat。您还必须为 tomcat 提供信任库的运行时位置和密码。您可以通过命令行或在 ide 中运行 tomcat 来启用此功能:-Djavax.net.ssl.trustStore=C:somedir\localhost.jks -Djavax.net.ssl.trustStorePassword=password

将公钥/私钥证书安装到您的浏览器

    您的浏览器必须设置为将您的证书识别为来自受信任的证书颁发机构,并知道如何使用私钥识别您的身份。

火狐使用说明:

    在 Firefox 的菜单中,导航到工具 > 选项 单击高级 > 加密选项卡 > 查看证书按钮 单击“权限”选项卡 点击导入按钮 找到并选择您希望浏览器识别为合法 CA 的 CA 证书,然后单击“打开” 单击使用此证书签名时要信任的所有用途。选项包括网站、电子邮件和软件开发人员。 点击确定

Firefox 现在将信任使用您刚安装的证书签名的内容。

IE 使用说明:

    导航到工具 > Internet 选项 选择“内容”选项卡 单击标有证书的按钮 单击标记为受信任的根证书颁发机构的选项卡 点击导入 向导启动。单击下一步,然后选择您希望作为 CA 信任的证书文件 选择证书存储。点击完成 您将看到一个确认安装的弹出窗口。点击是

Internet Explorer 现在将信任使用您刚刚安装的 CA 颁发的证书签名的内容。

使用 PKI 加密,您的浏览器需要知道如何使用私钥向服务器识别您的身份。为此,您必须手动安装证书。本例中导入的证书后缀为 .p12 火狐使用说明:

    在 Firefox 的菜单中,导航到工具 > 选项 单击高级 > 加密选项卡 > 查看证书按钮 单击标有“您的证书”的标签 点击导入 导航到并选择您希望选择的证书以表明您的身份。点击打开 输入与此证书配合使用的密码,点击确定

您的证书现已安装,可用于向使用 PKI 加密的服务器识别您的身份。如果您希望在不同时间使用不同身份来识别自己,则可以重复上述步骤以安装其他证书。 IE 使用说明:

    导航到工具 > Internet 选项 选择“内容”选项卡 单击标有证书的按钮 选择个人标签 点击导入 向导启动。单击下一步...,然后选择您希望用于标识自己的 pki 文件。点击下一步 输入证书的密码和所需的任何选项 选择存储证书的位置,然后单击下一步 > 完成

您的个人证书现已安装,您可以使用它向使用 PKI 加密的网站表明自己的身份。

【讨论】:

从客户端证书收到的这些信息是否需要传递给 LDAP(如 Active Directory),然后验证用户是否有权访问此 web 应用程序?我不清楚这是如何完成的。 答案包含配置 Tomcat 以使用 PKI 的一般说明。它没有指定如何配置 Tomcat 以使用 CAC DoD 信任库。

以上是关于通过 DOD PKI CAC 进行 Apache 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

DoD CAC PDF417 压缩

如何使用通用访问卡连接到 HTTPS 服务器

如何在 Node/Express 中使用 CAC 对用户进行身份验证

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

如何搭建HTTP/HTTPS服务

使用智能卡身份验证进行自动化测试(硒或其他选项?)