Apache¶
Puede configurar Apache httpd para utilizar NetHSM a través del motor OpenSSL que, a su vez, utiliza el módulo PKCS#11 de NetHSM.
El archivo del certificado debe estar en el disco, pero la clave privada puede utilizarse desde el NetHSM.
Encontrará un ejemplo completo en.
Configuración de OpenSSL¶
Configure el motor OpenSSL siguiendo la guía de configuración del motor OpenSSL de. (Los proveedores OpenSSL aún no son compatibles con httpd de Apache).
Configuración Httpd¶
Añada las siguientes líneas a su httpd.conf :
Listen 443
#...
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
#...
<VirtualHost *:443>
DocumentRoot /usr/local/apache2/htdocs
SSLEngine on
SSLCertificateFile /certs/certificate.pem
SSLCertificateKeyFile "pkcs11:object=webserver"
ErrorLog /tmp/a-error.log
CustomLog /tmp/a-access.log combined
</VirtualHost>
The SSLCertificateFile must point to a certificate file on the disk.
The SSLCertificateKeyFile should be a PKCS#11 URI pointing to the private key in the NetHSM.
Nota
Debe generar el certificado por separado y luego cargarlo en el NetHSM. Si el certificado en el disco y la clave en el NetHSM no coinciden, httpd no se iniciará.
libnethsm_pkcs11 Configuración¶
slots:
- label: LocalHSM
description: Local HSM (docker)
url: "https://192.168.3.161:8443/api/v1"
operator:
username: "operator"
password: "opPassphrase"
To secure the password you can provide it via an environment variable (see Passwords) or provide it in the httpd configuration:
SSLCertificateKeyFile "pkcs11:object=webserver;type=private;pin=opPassphrase";
Ejemplo¶
Si quieres experimentar con el ejemplo usa git para clonar el repositorio nethsm-pkcs11 y ejecuta los siguientes comandos:
Advertencia
Al ejecutar el script de generación se borra la clave webserver y se sustituye.
Configure a NetHSM, either a real one or a container. See the getting-started guide for more information. Besides an administrator, you are going to need an operator account.
Descargue e instale la última versión del controlador nethsm-pkcs11 disponible desde aquí.
Instale el motor PKCS11 de OpenSSL como se describe en el Manual de OpenSSL. No es necesario crear un archivo de configuración.
Ajuste las variables
HOST,ADMIN_ACCOUNTyADMIN_ACCOUNT_PWDencontainer/apache/generate.shde forma queHOSTcontenga la URL y el puerto de su NetHSM,ADMIN_ACCOUNTcontenga el nombre de usuario de una cuenta de administrador yADMIN_ACCOUNT_PWDla contraseña correspondiente. Configure además la ruta absoluta del motor PKCS11 de OpenSSL enOPENSSL_PKCS11_ENGINE_PATHy la ruta absoluta de la biblioteca PKCS11 de NetHSM enNETHSM_PKCS11_LIBRARY_PATH.Create a NetHSM PKCS11 configuration file in one of the known locations, e.g.,
/etc/nitrokey/p11nethsm.conf. It must have configured an operator account and use the same NetHSM instance specified in the generate script before.Actualice la configuración PKCS11 en
container/apache/p11nethsm.confcon su URL NetHSMs y credenciales de operador válidas.Genere el certificado y la clave.
./container/apache/generate.sh
Construye el contenedor.
docker build -f container/apache/Dockerfile . -t pkcs-httpd
Ejecuta el contenedor.
docker run -p 9443:443 -p 9080:80 pkcs-httpd
La página de prueba de Apache estará disponible en https://localhost:9443/. Tenga en cuenta que su navegador, con suerte, le advertirá de que el certificado del sitio web es autofirmado.