Cómo utilizar C para implementar un servidor web RESTful que admita HTTPS
El servicio web se utiliza a menudo como interfaz 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 servicio 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 al servicio web mediante cifrado HTTPS es el siguiente: Preparación (1) Compruebe si las variables de entorno JDK son correctas. Este artículo utiliza JDK1.6(2) para preparar el servidor web, y aquí se utiliza TOMCAT6.0(3) para preparar el servidor y el cliente del servicio web. Los archivos utilizados para generar el certificado se almacenan en la carpeta D:/SSL/. Los archivos en D:/SSL/server/ se entregarán al servidor y los archivos en D:/SSL/client/ se entregarán al servidor. ser entregado al cliente para su uso. 1 Genere el certificado del servidor e inicie-ejecute-CMD-ejecute el comando en la ventana DOS: keytool-genkey-v-aliastomcat-keyalgRSA-keystoreD:/SSL/server/tomcat.keystore-dname"CN=127.0.0.1, OU = zlj, O=zlj, L=Pekín, ST=Pekín, C=CN"-validity3650-storepasszljzlj-keypasszljzlj 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 -aliastomcat utiliza "tomcat" como alias de este certificado. Aquí puede modificar el algoritmo especificado -keyalgRSA según sea necesario -keystoreD:/SSL/server/tomcat.keystore ruta de guardado 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. -validity3650 período de validez del certificado, en días -storepasszljzlj contraseña de acceso al certificado -keypasszljzlj clave privada del certificado 2 Generar comando de ejecución del certificado del cliente: keytool‐genkey‐v‐aliasclient‐keyalgRSA‐storetypePKCS12‐keystoreD:/SSL/client/client p12‐dname. CN=cliente, OU=zlj, O=zlj, L=bj, ST=bj, C=CN"‐validity3650‐storepassclient‐keypassclient descripción: la descripción del parámetro es la misma que la 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-keystoreD:/SSL/client/client.p12-storetypePKCS12-storepassclient-rfc-fileD:/SSL/client/client.cer Descripción: -export ejecutar export-file exportar archivo ruta del archivo 4. Agregue el certificado del cliente a la lista de confianza de certificados del servidor Ejecute el comando: keytool-import-aliasclient-v-fileD:/SSL/client/client.cer-keystoreD:/SSL/server/tomcat.keystore. -storepasszljzl 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 Exporte el certificado del servidor y ejecute el comando: keytool-export-aliastomcat-keystoreD:/SSL/server/tomcat.keystore-storepasszljzlj-rfc-fileD:/SSL/server/tomcat.cer Descripción: Exporte el certificado del servidor. La contraseña proporcionada aquí también es la contraseña del certificado del servidor. 6 Genere la lista de confianza del cliente y ejecute el comando: keytool-import-fileD:/SSL/server/tomcat.cer-storepasszljzlj-keystoreD:/SSL/client/client.truststore-aliastomcat–noprompt Descripción: Deje que el cliente confíe en el servidor configuración del certificado El servidor configura el código /conf/server.xmlXml en el directorio Tomcat para permitir solo conexiones HTTPS 1: Nota: Este contenido en server.xml fue comentado originalmente si desea utilizar .ssl.trustStore", "D. : /SSL/client/client.truststore"); System.setProperty("javax.net.ssl.trustStorePassword", "zljzlj"); System.setProperty("javax.net.ssl.keyStoreType", "PKCS12"); System .setProperty("javax.net.ssl.keyStore", "D:/SSL/client/client.p12"); System.setProperty("javax.net.ssl.keyStorePassword", "cliente"); ApplyFormService "; Especifique el certificado de cliente utilizado cuando el cliente se conecta configurando los parámetros. También puede modificar los parámetros de inicio de JVM. Sin embargo, para no afectar otras funciones, aquí se utiliza System.setProperty. Después de configurar estos parámetros, puede restaurar estas configuraciones de parámetros Como desarrollador del cliente, solo puede realizar el paso 3 después de obtener el archivo de certificado.