Java 服务器Tomcat中的客户端身份验证
我想为相互身份验证配置SSL 我使用eclipse+Tomcat8 我这样做是为了: 我以这种方式创建了私钥:Java 服务器Tomcat中的客户端身份验证,java,tomcat,authentication,ssl,Java,Tomcat,Authentication,Ssl,我想为相互身份验证配置SSL 我使用eclipse+Tomcat8 我这样做是为了: 我以这种方式创建了私钥: openssl genrsa -des3 -out client_key.pem 2048 openssl genrsa -des3 -out server_key.pem 2048 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThr
openssl genrsa -des3 -out client_key.pem 2048
openssl genrsa -des3 -out server_key.pem 2048
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="path\to\server.jks" keystorePass="*******" keystoreType="JKS"
truststoreFile="path\to\servertruststore.jks" truststorePass="********" truststoreType="JKS" />
我创建了自签名证书:
openssl req -new -x509 -key client_key.pem -out client.pem -days 365 -config <path to>\openssl.cnf
openssl req -new -x509 -key server_key.pem -out server.pem -days 365 -config <path to>\openssl.cnf
keytool –importcert -trustcacerts –keystore clienttruststore.jks –storetype jks –storepass <truststore_password> -file <path-to-file>\server.pem
keytool –importcert -trustcacerts –keystore servertruststore.jks –storetype jks –storepass <server_truststore_password> -file <path-to-file>\client.pem
最后,我将密钥库转换为pkcs12格式:
keytool –importkeystore –srckeystore client.p12 –srcstoretype pkcs12 –destkeystore client.jks –deststoretype jks
keytool –importkeystore –srckeystore server.p12 –srcstoretype pkcs12 –destkeystore server.jks –deststoretype jks
在此之后,我在Tomcat上配置了SSL/TLS支持。因此,我在Servers文件夹中配置了server.xml,并按以下方式设置连接器:
openssl genrsa -des3 -out client_key.pem 2048
openssl genrsa -des3 -out server_key.pem 2048
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="path\to\server.jks" keystorePass="*******" keystoreType="JKS"
truststoreFile="path\to\servertruststore.jks" truststorePass="********" truststoreType="JKS" />
最后,我清理并构建项目
我在Eclipse中创建了一个名为“myproject”的动态Web项目。它工作得很好
问题是当myproject在URLhttps://localhost:8443/myproject
Google Chrome显示红色三角形(此页面不安全(断开的HTTPS))
clientAuth=“false”
应该是true。至于密钥库,您应该为证书使用相同的密钥库,因此当客户端连接到它的证书时,tomcat将验证相应的证书是否位于密钥库中希望有帮助。在chrome上,您是否可以将证书作为例外添加?(如果没有意义,请您在问题中添加chrome页面的快照,我可以为您提供正确的步骤)记住这是一个自签名证书。因此浏览器会将其标记。我编辑帖子并添加快照。如何将证书添加为例外?您的网站已在使用https,但浏览器不接受该证书,因为该证书是自签名的,并且未经认可的证书颁发机构(CA)签名。您需要由CA签署的证书及其根证书。试试这个链接。祝你好运