Actualización:
Try siguiente manera para permitir la autenticación del cliente en Tomcat.
Para hacer Tomcat tomar ventajas de la autenticación de clientes, que requieren tres certificados. es decir, un Certificado de servidor para Tomcat, Certificado de cliente para el navegador y Certificado de CA que firmará ambos certificados mencionados anteriormente. Aquí, mostraré cómo hacerlo en Windows.
Hay dos formas.
1) Usted debe tener un archivo de RSE es decir, una solicitud de firma de certificado.Puede enviarlo a la Autoridad de certificación como Verisign o Comodo o muchos otros como ellos. Ellos te proporcionarán el certificado. O
2) Puede crear su propia Autoridad de certificación y firmar los certificados. Pero se recomienda hacer esto solo para uso personal.
Debería tener instalado Java y OpenSSL para realizar los pasos siguientes.
Para generar la Solicitud de firma de certificado, debe tener la clave. Para generar la clave, escriba el siguiente comando en CMD.
openssl genrsa salida privado Serverkey.key 1024
Esto generará un archivo "Serverkey.key". El tamaño de clave es 1024. Puede darlo según su requisito.
Ahora genere el archivo CSR con la ayuda del siguiente comando.
openssl req -nuevo tecla Serverkey.key salida privado ServerReq.csr -config /path/to/openssl.cnf
Una vez que se ejecuta este comando, se le pedirá a dar alguna información. Después de eso, encontrará el archivo CSR en su directorio. Puede enviar este archivo a la CA. En caso de que esté haciendo esto para su uso personal, y quiera tener su propia CA, cree una clave y CSR para su CA con la ayuda de los dos comandos anteriores. Después de tener su CSR para CA, puede firmar con la clave de CA con la ayuda del siguiente comando.
openssl x509 -req -days 365 -en CAReq.csr -signkey CAKey.key salida privado ca.crt
Una vez que tenga el certificado de CA, que se puede utilizar para firmar otros certificados.
openssl x509 -req -days 365 -CA ca.crt -CAkey CAKey.key -CAcreateserial -en ServerReq.csr salida privado server.crt
Se puede utilizar el mismo comando para el certificado de cliente también.
El navegador que es nuestro cliente aquí, aceptará el certificado de formato P12. El formato P12 es un archivo que contiene su certificado y la clave.
Para convertir el CRT a P12, utilice el siguiente comando.
openssl pkcs12 -export -en server.crt -inkey ServerKey.key cadena beta -CAfile ca.crt salida privado ServerCert.p12
En Tomcat, hay un almacén de confianza que tendrá de la AC certificado y otro es un almacén de claves que tendrá la clave del servidor y el certificado (archivo p12).
Para importar el certificado de CA al almacén de confianza, use el siguiente comando.
keytool -import -alias CertAuth -keystore caCerts.jks -file CA.crt
Puede dar un alias como lo desee. Tenga en cuenta la contraseña que proporciona cuando se le pregunta después de ejecutar el comando anterior. Usaremos esa contraseña en el archivo server.xml. Lo mismo aplica para el siguiente comando.
Para importar el certificado de formato p12 al almacén de claves, use el siguiente comando.
herramienta de claves -importkeystore -destkeystore tomcat.keystore -srckeystore -ServerCert.p12 -srcstoretype PKCS12 -alias 1
Ahora, cambie server.xml de Tomcat como el siguiente.
<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"
/>
Ahora, para importación de certificados formato P12 del Cliente al navegador. Luego, inicie el servidor Tomcat e intente acceder al https://localhost:8443. Puede visitar el blog para obtener la versión detallada de esta respuesta. Espero que esto ayude.
Tiendo a estar de acuerdo con el proveedor de servicios web, de acuerdo con la información que ha proporcionado. Han elegido usar un mecanismo de autenticación estándar ampliamente respaldado. No tienen ningún negocio (a menos que los pague para consultar) diciéndole cómo * implementar * la interfaz que han especificado. Afortunadamente, dado que escogieron un estándar ampliamente utilizado, tiene muchos recursos a los que puede recurrir (muchos de ellos, como StackOverflow, son gratuitos), y aprende una tecnología que podría beneficiarlo en otros contextos. – erickson
Mi queja con ellos es más profunda que solo este problema. Pagamos no solo para obtener acceso * al * servicio, sino que también tenemos que pagar por transacción, por lo que esperaría al menos un poco de ayuda (aparte de unos pocos archivos PDF vagos sin casi detalles técnicos). . Todos mis otros proveedores de servicios de terceros al menos me dan ejemplos de código o pueden señalarme en la dirección correcta cuando tengo preguntas. – dragonmantank