Cómo acceder al servicio web a través de HTTPS
Los servicios web se utilizan a menudo como interfaces entre diferentes sistemas en aplicaciones empresariales. Pero sin ningún mecanismo de seguridad, obviamente es difícil confiarle tareas importantes. Un método de cifrado de servicios web más directo es utilizar HTTPS (cifrado de certificado SSL) para cifrar la conexión y permitir que solo se conecten clientes con certificados confiables, es decir, autenticación bidireccional SSL. Esto garantiza la credibilidad de la fuente de conexión y que los datos no hayan sido robados ni manipulados durante la transmisión. El método específico para acceder a servicios web a través del cifrado HTTPS es el siguiente:
Preparación
(1) Compruebe si las variables de entorno JDK son correctas. Este artículo utiliza JDK 1.6
(2) para preparar el servidor web. Aquí, se utiliza TOMCAT 6.0
(3) para preparar el servidor y el cliente del servicio web.
Generar certificado
Los archivos utilizados aquí se almacenan en la carpeta D:/SSL/ y los archivos en D:/SSL/server/ se entregarán al servidor. Para su uso, los archivos en D:/SSL/client/ deben entregarse al cliente.
1 Generar certificado de servidor
Iniciar-Ejecutar-CMD-Ejecutar el comando en la ventana de DOS:
keytool -genkey -v -aliastomcat -keyalg RSA - almacén de claves D:/SSL/server/tomcat.keystore -dname"CN=127.0.0.1,OU=zlj,O=zlj,L=Pekín,ST=Pekín,C=CN" -validity 3650-storepass zljzlj -keypass zljzlj
Descripción:
keytool es la herramienta de generación de certificados proporcionada por JDK. Para conocer el uso de todos los parámetros, consulte keytool –help
-genkey para crear un nuevo certificado.
-v detalles
-alias tomcat utiliza "tomcat" como alias del certificado. Puede modificarlo aquí según sea necesario
-keyalg algoritmo especificado RSA
-keystoreD:/SSL/server/tomcat.keystore guardar ruta y nombre de archivo
- dname" CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" La identidad del emisor del certificado El CN aquí debe ser coherente con el nombre de dominio de acceso después de la emisión. Pero como se trata de un certificado autofirmado, seguirá apareciendo una advertencia si accede a él desde un navegador. En escenarios reales, se recomienda solicitar un certificado SSL emitido por una organización CA (wosign), que es más seguro.
-validity 3650 período de validez del certificado, la unidad son días
-storepass zljzlj contraseña de acceso al certificado
-keypass zljzlj clave privada del certificado
2 Generar certificado de cliente
Ejecutar comando:
keytool ‐genkey ‐v ‐aliasclient ‐keyalg RSA ‐storetype PKCS12 ‐keystore D:/SSL/client/client.p12 ‐ dname"CN =cliente,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" ‐validez 3650 ‐storepassclient ‐keypass cliente
Descripción:
La descripción del parámetro es lo mismo que el anterior. La identidad del emisor del certificado -dname aquí puede ser diferente de la anterior. Hasta ahora, estos dos certificados no tienen relación. Lo siguiente que debe hacer es establecer una relación de confianza entre ambos.
3 Exportar certificado de cliente
Ejecutar comando:
keytool ‐export ‐aliasclient ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐ storepass client‐rfc ‐file D:/SSL/client/client.cer
Descripción:
-export Ejecutar exportación
-file La ruta del archivo de exportación file
4 Agregue el certificado del cliente a la lista de confianza de certificados del servidor
Ejecute el comando:
keytool ‐import ‐aliasclient ‐v ‐file D:/SSL /client /client.cer ‐keystoreD:/SSL/server/tomcat.keystore ‐storepass zljzl
Descripción:
La descripción del parámetro es la misma que antes. La contraseña proporcionada aquí es la contraseña de acceso al certificado del servidor.
5 Exportar el certificado del servidor
Ejecuta el comando:
keytool -export -aliastomcat -keystore D:/SSL/server/tomcat.keystore -storepass zljzlj - rfc -fileD:/SSL/server/tomcat.cer
Instrucciones:
Exportar el certificado del servidor. La contraseña proporcionada aquí también es la contraseña del certificado del servidor.
6 Generar lista de confianza de clientes
Ejecutar comando:
keytool -import -fileD:/SSL/server/tomcat.cer -storepass zljzlj -keystoreD: / SSL/client/client.truststore -alias tomcat –noprompt
Instrucciones:
Dejar que el cliente confíe en el certificado del servidor
Configurar el servidor para que solo permita la conexión HTTPS
1 Configure /conf/server.xml en el directorio Tomcat
Código XML:
maxThreads="150" esquema="https" Secure="true"clientAuth="true" sslProtocol="TLS"keystoreFile="D:/ SSL /server/tomcat.keystore" keystorePass="zljzlj"truststoreFile="D:/SSL/server/tomcat.keystore" truststorePass="zljzlj" /> p > Nota: Este contenido en server.xml fue comentado originalmente. Si desea utilizar el puerto predeterminado 443 de https, modifique el parámetro del puerto aquí. ClientAuth="true" especifica la autenticación de certificado bidireccional.