使用SSL的Tomcat客户端身份验证
我不知所措,因为我不是一个喜欢雄猫的人。我需要使用第三方的web服务,他们需要通过SSL进行客户端身份验证,所以他们生成并向我颁发了SSL证书。不幸的是,这是他们所支持的,不能给我任何关于如何实际使用它的指导。我一直在使用这个第三方,所以不幸的是,我不得不忍受他们缺乏支持 因此,我所拥有的是一个供应商为我们提供的Java应用程序(显然他从未处理过这个问题),一个在CentOS 5.3上运行6.0.20的Tomcat应用程序服务器,以及来自第三方的SSL证书使用SSL的Tomcat客户端身份验证,tomcat,ssl,Tomcat,Ssl,我不知所措,因为我不是一个喜欢雄猫的人。我需要使用第三方的web服务,他们需要通过SSL进行客户端身份验证,所以他们生成并向我颁发了SSL证书。不幸的是,这是他们所支持的,不能给我任何关于如何实际使用它的指导。我一直在使用这个第三方,所以不幸的是,我不得不忍受他们缺乏支持 因此,我所拥有的是一个供应商为我们提供的Java应用程序(显然他从未处理过这个问题),一个在CentOS 5.3上运行6.0.20的Tomcat应用程序服务器,以及来自第三方的SSL证书 在这一点上我需要做什么?我能在网上找到
在这一点上我需要做什么?我能在网上找到的只是如何设置密钥库,以便我的应用程序可以对连接到它的东西使用客户端身份验证,而不是在它需要连接到其他人的时候,或者如何通过端口8443使用SSL(我已经知道如何做并且已经设置好了)。下面是一个很长的答案: 不要相信我的话,但我相信,作为客户机,当服务器请求客户端身份验证时,客户端身份验证将自动执行
如果配置tomcat是个问题,那么您读过了吗?特别要注意Connector元素的clientAuth属性。我不知道这是关于配置Tomcat的,只是为了能够将系统属性传递给在Tomcat中运行的web应用程序 提供web应用程序的供应商应该能够告诉您如何从他们的软件获得客户端连接,以便在与远程web服务建立SSL连接时使用特定的客户端证书 例如,他们可以让自己的应用程序实现一个自定义的SSL连接,该连接能够从可配置的位置查找客户端证书和私钥 如果他们没有这样做,他们可能正在使用默认的SunX509密钥管理器 对于默认的KeyManager,显然可以使用keytool创建一个包含客户机证书和证书描述的私钥的密钥库。然后,可以使用以下系统参数指定密钥存储:
-Djavax.net.ssl.keyStore="/path/to/keystore"
-Djavax.net.ssl.keyStorePassword="<password>"
-Djavax.net.ssl.keyStore=“/path/to/keyStore”
-Djavax.net.ssl.keystrepassword=“”
您需要配置Tomcat以传入这些属性。更新: 尝试以下方法在Tomcat中启用客户端身份验证 为了让tomcat利用客户端身份验证,我们需要三个证书。i、 e Tomcat的服务器证书、浏览器的客户端证书和CA的证书,CA将签署上述两个证书。在这里,我将演示如何在Windows中执行此操作 有两种方法
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
truststoreFile="path/to/truststorefile" truststorePass="password"
keystoreFile="path/to/keystorefile" keystorePass="password"
clientAuth="true" sslProtocol="TLS"
/>
现在,将客户端的P12格式证书导入浏览器。然后,启动tomcat服务器并尝试访问https://localhost:8443. 有关此答案的详细版本,请访问。希望这有帮助。所以我所要做的就是生成一个密钥库(我想不使用端口属性),当我的应用程序访问第三方(比如,通过SOAP)时,它将接收SSL身份验证请求并发送我的客户端SSL?如果它们