使用DOD PKI CAC进行Apache身份验证

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

有更新吗?这个问题解决了吗? - Matt
1个回答

5

配置 Apache Tomcat 实现双向 SSL(版本 6.0.18)

  1. 使用文本编辑器打开 server.xml 文件,该文件位于 tomcat 目录下的 <TOMCAT_HOME>\conf\server.xml
  2. 查找以下文本块并取消注释:
<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. Modify this text block as follows:

  <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"/>
  1. 启动Tomcat并使用您喜欢的浏览器导航至https://localhost:8443/
  2. 浏览器将提示您提供客户端证书(注意:如果没有提示您提供证书,则可以尝试在IE中使用“工具”>“Internet选项”>“证书”>“导入”导入证书)。选择正确的客户端证书。
  3. 如果您看到一个网站,则表示Tomcat已安装并正在正确运行。如果您看到“页面未找到”或其他错误,则表示Tomcat安装或配置不正确。
  4. 为客户端SSL支持设置Tomcat。您还必须为tomcat提供信任存储和密码的运行时位置。您可以通过命令行启用此功能,或者如果您在IDE中运行tomcat,则可以使用以下内容:-Djavax.net.ssl.trustStore=C:{somedir}\localhost.jks -Djavax.net.ssl.trustStorePassword=password

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

  1. 您的浏览器必须设置为既能够识别来自受信任证书颁发机构的证书,又能够使用私钥识别您。

Firefox指南:

  1. 在Firefox菜单中,导航到“工具”>“选项”
  2. 点击“高级”>“加密”选项卡>“查看证书”按钮
  3. 点击“颁发机构”选项卡
  4. 点击“导入”按钮
  5. 定位并选择您希望浏览器识别为合法CA的CA证书,然后点击“打开”
  6. 选择您希望信任此证书签名时的所有目的。选项包括网站、电子邮件和软件开发人员。
  7. 点击“确定”

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

IE指南:

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

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

使用PKI加密,您的浏览器需要知道如何使用私钥将您识别给服务器。为此,您必须手动安装您的证书。本示例中导入的证书后缀为.p12 Firefox指南:

  1. 在Firefox的菜单中,导航到 工具 > 选项
  2. 点击高级 > 加密标签 > 查看证书按钮
  3. 点击标记为“你的证书”的选项卡
  4. 点击导入
  5. 浏览并选择您要用来标识自己的证书。 点击打开
  6. 输入与此证书配合使用的密码,然后点击确定

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

IE指示:

  1. 导航到工具 > Internet选项
  2. 选择内容选项卡
  3. 点击标注为证书的按钮
  4. 选择个人选项卡
  5. 点击导入
  6. 启动向导。 点击下一步...,然后选择要用于标识自己的pki文件。 点击下一步
  7. 输入证书密码和任何所需选项
  8. 选择存储证书的位置,然后点击下一步 > 完成

现在已安装您的个人证书,并且您可以将其用于通过PKI加密向网站标识您的身份。


这个来自客户端证书的信息不需要传递到LDAP(如Active Directory)以验证用户是否被授权访问此Web应用程序吗?我不清楚这是如何完成的。 - blak3r
答案包含了配置Tomcat使用PKI的通用指令,但它并没有说明如何配置Tomcat使用CAC DoD信任存储。 - Prof Mo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接