Utilice el servidor Tomcat, el navegador IE para configurar la autenticación bidireccional https

Keytool, servidor Tomcat, navegador IE configuran la autenticación bidireccional https

Primero describa brevemente el principio de https

1. Introducción y relación de HTTP, HTTPS, SSL, TLS
(1) HTTP: Protocolo que se suele utilizar al navegar por la web. Los datos transmitidos por el protocolo HTTP no están encriptados (texto plano), por lo que la transmisión de información privada mediante el protocolo HTTP es muy insegura.
(2) HTTPS: Para asegurar la transmisión encriptada de datos privados, se utiliza el protocolo SSL / TLS para encriptar los datos transmitidos por el protocolo HTTP, es decir, HTTPS.
(3) SSL: El protocolo SSL (Secure Sockets Layer) fue diseñado por Netscape y luego definido en RFC 6101 por IETF. La versión actual es la 3.0.
(4) TLS: se puede decir que TLS es una versión mejorada de SSL. Surgió de la actualización de SSL 3.0 del IETF y se define en RFC 2246. De hecho, nuestro HTTPS actual es el protocolo TLS.

2. Funciones TLS / SSL
(1) HTTPS requiere un protocolo de enlace entre el cliente (navegador) y el servidor (sitio web) antes de transmitir datos. Durante el proceso de enlace, se establecerá la información criptográfica para que ambas partes cifren los datos transmitidos.
(2) En TLS / SSL se utilizan algoritmos de cifrado asimétrico, cifrado simétrico y HASH.
El algoritmo de cifrado asimétrico se utiliza para cifrar la contraseña generada durante el proceso de negociación, el algoritmo de cifrado simétrico se utiliza para cifrar los datos realmente transmitidos y el algoritmo HASH se utiliza para verificar la integridad de los datos.
(3) Si hay algún error en el proceso de protocolo de enlace TLS, la conexión cifrada se desconectará, evitando así la transmisión de información privada.

Proceder de la siguiente

Generación de certificados autofirmados de Keytool, importación de servidor Tomcat, autenticación del navegador

generación de certificado autofirmado keytool

El requisito previo es configurar el entorno java, y el método específico puede aprender de la configuración del entorno java . El comando keytool para generar un certificado se aprende de la siguiente manera: resumen de aprendizaje de keytool .

Hay muchos ejemplos de diferentes formatos para generar certificados en Internet. Si tiene algún comentario sobre lo siguiente, le sugiero que conozca las diferencias entre estos formatos. ¿Cuál es la diferencia entre el archivo CSR y el archivo PEM?

Ahora necesitamos una muestra de nuestra generación de certificados:

1. Abra la entrada de línea de comando cmd

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500

(Descripción del parámetro: "D: \ tomcat.keystore" significa la ruta para guardar el archivo de certificado, el nombre del archivo de certificado es tomcat.keystore;
"-validity 36500" significa el período de validez del certificado, 36500 significa 100 años y el valor predeterminado es 90 días; "Tomcat" es el nombre del certificado personalizado)

2. Ingrese la contraseña del almacén de claves : contraseña del almacén de claves (suponiendo que use hangge).
Cuál es su nombre y apellido: debe ser el nombre de dominio o la IP del host de implementación de TOMCAT (es decir, la dirección de acceso que ingresará en el navegador en el futuro); de lo contrario, el navegador Aparecerá una ventana de advertencia que le indicará que el certificado de usuario no coincide con el dominio. Al desarrollar y probar localmente, debe completar "localhost". Contraseña de clave ingresada: presione directamente Enter

3. Genere un certificado para el navegador para que el servidor pueda verificarlo. Para importar el certificado a IE sin problemas, el formato del certificado debe ser PKCS12, por lo tanto, use el siguiente comando para generar:

keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\mykey.p12

Suponiendo que la contraseña del certificado de cliente es "123456", complete el resto.

4. Deje que el servidor confíe en el certificado del cliente Si el servidor confía en el certificado del cliente, el certificado del cliente debe agregarse como certificado de confianza del servidor.
(1) Dado que la biblioteca de certificados en formato PKCS12 no se puede importar directamente, el certificado de cliente debe exportarse como un archivo CER separado, utilizando el siguiente comando: (La contraseña del certificado de cliente "123456" se usa a continuación)

keytool -export -alias mykey -keystore D:\mykey.p12 -storetype PKCS12 -storepass 123456 -rfc -file D:\mykey.cer

(2) Importe el archivo al almacén de certificados del servidor y agréguelo como certificado de confianza. Utilice el siguiente comando:

keytool -import -v -file D:\mykey.cer -keystore D:\tomcat.keystore

(3) Vea la biblioteca de certificados del servidor a través del comando list, puede ver dos certificados, uno es el certificado del servidor y el otro es el certificado del cliente de confianza:

keytool -list -keystore D:\tomcat.keystore

5. Permita que el cliente confíe en el certificado del servidor
Debido a que es una autenticación SSL bidireccional, el cliente también debe verificar el certificado del servidor. Para exportar el certificado del servidor como un archivo CER independiente y proporcionárselo al cliente, utilice el siguiente comando:

keytool -keystore D:\tomcat.keystore -export -alias tomcat -file D:\tomcat.cer

Los siguientes son preparativos: el certificado generado
Inserte la descripción de la imagen aquí

Importar servidor tomcat

Primero, necesitas preparar un servidor Tomcat, personalmente descargué la versión 8.5. La descarga y la configuración pueden aprender de la descarga y la instalación de Tomcat . Si es la primera vez que usa Tomcat, debe abrir el directorio de instalación para aceptar la autoridad del administrador (tal vez mi configuración de firewall personal) y luego usar configure tomcat. Hay opciones de inicio y detención a continuación para encender y apagar el servidor. El navegador abre el localhost predeterminado: 8080 para confirmar si su Tomcat está configurado correctamente.

1. Abra el directorio de instalación de Tomcat , busque el archivo server.xml en conf y busque el siguiente segmento de código y modifíquelo
Inserte la descripción de la imagen aquí
a ( se recomienda no eliminar el segmento de comentario original, puede copiar el segmento de comentario y modificarlo para evitar no recordar el código original. En segundo lugar, si lo modifica) El formato del archivo server.xml es incorrecto, lo que puede hacer que el servidor Tomcat no se reinicie. También se recomienda guardar una copia de seguridad original de server.xml antes de la modificación )

<Connector  port = "8443"  protocol = "org.apache.coyote.http11.Http11NioProtocol"
     SSLEnabled = "true"  maxThreads = "150"  scheme = "https"
     secure = "true"  clientAuth = "true"  sslProtocol = "TLS"
     keystoreFile = "D:\tomcat.keystore"  keystorePass = "hangge"
     truststoreFile = "D:\tomcat.keystore"  truststorePass = "hangge"  />

Descripción del atributo:
clientAuth: establezca si se debe verificar la autenticación bidireccional, el valor predeterminado es falso, establecido en verdadero significa autenticación bidireccional keystoreFile: ruta del archivo del certificado del servidor
keystorePass: contraseña del certificado del servidor truststoreFile: se utiliza para verificar el certificado raíz del certificado del cliente, en este caso es el certificado del servidor
truststorePass : Contraseña del certificado raíz

2. Al operar aquí, debido a que hay tantos casos en Internet, también aprendí algunos, como la diferencia entre el puerto 8443 y el puerto 443 . Aquí, debido a problemas con la versión de Tomcat, etc., la configuración es muy fácil de hacer que el navegador aparezca "Falta la página y no se puede acceder". También tenga paciencia para depurar su archivo server.xml.

3. En el proceso de aprendizaje, también puede probar el salto automático de http a https, es decir </welcome-file-list>, agregar dicho párrafo después del formato de archivo web.xml en conf

<login-config>
        <!-- Authorization setting for SSL -->
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
        <!-- Authorization setting for SSL -->
        <web-resource-collection >
            <web-resource-name >SSL</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

Autenticación del navegador

Lo que probé fue el navegador IE de la computadora. Los certificados autofirmados simples no son muy seguros y es probable que Chrome y otros navegadores fallen (mostrar "certificado no válido").

1. Ingrese https: // localhost: 8443 / en el navegador (la siguiente figura muestra que el https de tomcat se ha activado correctamente. No importa si informa un certificado no válido, porque nuestro cliente no ha importado el certificado)
Inserte la descripción de la imagen aquí
2. Importe el certificado del cliente. Herramientas- "Opciones de Internet-" Contenido- "Certificados-" Personal- "Importar, haga clic en Siguiente y seleccione el archivo mykey.p12
Inserte la descripción de la imagen aquí
Introduzca la contraseña del certificado de cliente" 123456 "establecida antes, y luego haga clic en Siguiente y Aceptar.

3. Reinicie el navegador y abra https: // localhost: 8443 /, y se mostrará la siguiente figura: Inserte la descripción de la imagen aquí
4. Haga clic en Permitir para mostrar la configuración correcta del certificado de cliente.
Puede ver que se puede acceder correctamente (el "error de certificado" en la barra de direcciones indica que aún no hay una verificación bidireccional, pero los datos ya se han transmitido mediante HTTPS)
Inserte la descripción de la imagen aquí
5. Importe el certificado de clave pública del servidor (tomcat.cer)
porque es un certificado autofirmado, Evite las indicaciones inseguras cada vez. Aquí haga doble clic en tomcat.cer para instalar el certificado del servidor.
Nota: Complete el certificado de "Entidades emisoras de certificados raíz de confianza". Si vuelve a visitar el servidor, encontrará que no hay un mensaje inseguro y también hay un icono de "candado" en la barra de direcciones del navegador, que indica que esta sesión ha pasado la autenticación HTTPS bidireccional. Haga clic en el "candado" junto a la actualización de la página para ver el certificado que configuró.

Conozca el artículo de referencia principal : Configuración del servidor Tomcat https autenticación bidireccional (use keytool para generar un certificado)

Supongo que te gusta

Origin blog.csdn.net/June_Wosen/article/details/109398472
Recomendado
Clasificación