1

我需要使用 CAC 和 PIV 卡上的客户端证书支持两因素身份验证。我很难清楚地了解如何在我们的 Shibboleth 系统上配置证书检查。我们的系统使用:

  • 启用 SELinux 的 RHEL 7
  • Apache Tomcat 8.5.16
  • Java 1.8
  • Shibboleth IDP 3.3.1
  • 基于 DoD CAC 和联邦 PIV 卡的客户端证书

我已将 Tomcat server.xml 配置如下:

<Connector defaultSSLHostConfigName="domain.gov" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
    <SSLHostConfig hostName="domain.gov" sessionTimeout="3600" protocols="+TLSv1.2+TLSv1.1" honorCipherOrder="true" truststoreFile="/app/keystores/certs.jks" truststorePassword="changeThis!" certificateVerification="optional" >
        <Certificate certificateKeyAlias="tomcat_gov" certificateKeystoreFile="/app/keystores/certs.jks" certificateKeystorePassword="changeThis!" />
    </SSLHostConfig>
    <SSLHostConfig hostName="domain.mil" sessionTimeout="3600" protocols="+TLSv1.2+TLSv1.1" honorCipherOrder="true" truststoreFile="/app/keystores/certs.jks" truststorePassword="changeThis!" certificateVerification="required" certificateRevocationList="http://ocsp.disa.mil/" >
        <Certificate certificateKeyAlias="tomcat_mil" certificateKeystoreFile="/app/keystores/certs.jks" certificateKeystorePassword="changeThis!" />
    </SSLHostConfig>
</Connector>

问题是上面的配置导致使用PIV卡的用户无法登录系统。此外,文档中关于 CRL 属性的实际名称似乎存在一些差异。我已经看到,如果使用本地 CRL 文件,使用 certificateRevocationList 会失败,但 certificateRevocationListFile 有效。

提前致谢!

4

0 回答 0