Estoy configurando el proxy inverso nginx en Ubuntu 16.04 LTS Server para servidor web.
Habrá tres servicios diferentes ejecutándose en Ubuntu. Los servicios se comunicarán entre sí mediante llamadas API. De manera similar, los Clientes (Navegador/Móvil) comunicarán los Servicios mediante llamadas API.
Para validar las solicitudes SSL del cliente, necesito instalar certificados en la PC del servidor. Después de la autenticación, solo la solicitud se procesará o reenviará para seguir procesándose.
Cada Servicio tengo Certificados de archivos de los siguientes formatos. Ser1_cert.crt, Ser1_key-decryp.key, Ser1_keyfile.key, Ser1_exported.pfx
lly Ser2_..., Ser3_... files are available
Para CA, tengo archivos CA_50EA.crt, CA_50EA.pfx están disponibles
No tengo claro qué formato de archivo de certificado debo usar para la instalación del certificado.
Para instalar certificados en el sistema, seguí los siguientes pasos. 1. Copié archivos de extensión .crt (incluido el archivo CA) y /usr/share/ca-certificates
luego ejecuté el siguiente comando. 2.sudo dpkg-reconfigure ca-certificates
Mostró la interfaz de usuario para seleccionar certificados, seleccioné todos. Al final mostró el no. de certificados agregados.
Puse la ruta del certificado correctamente en el archivo nginx.conf. Copié .crt
y .key
archivos a /etc/ssl/certs/
y /etc/ssl/private/
respectivamente.
ssl_certificate "/etc/pki/certs/XServer_certificate.crt"; ssl_certificate_key "/etc/ssl/private/XServer_decryp.key";
Ahora intenté iniciar sesión en el servidor desde el cliente del navegador, pero la validación del certificado de inicio de sesión falló y apareció el siguiente mensaje de registro del servidor.
info: LoginController[0]
Certification Error :unable to get local issuer certificate
Para reconfirmar nuevamente, copié todos los archivos del certificado en /usr/share/ca-certificates
el directorio (14 archivos en total) y luego ejecuté nuevamente sudo dpkg-reconfigure ca-certificates
. Esta vez también aparece el mismo error.
La próxima vez que ejecuté sudo update-ca-certificates --fresh
el comando mostró el no. de certificados instalados con una advertencia para el archivo ca.pem como se muestra a continuación.
WARNING: CA_50EA.pem does not contain a certificate or CRL: skipping 152 added, 0 removed; done.
El archivo .pem se crea en /etc/ssl/certs
la carpeta, pero ingresé solo el archivo .crt en/usr/share/ca-certificates
Intenté verificar usando el siguiente comando, también veo el mismo problema que se muestra a continuación.
openssl s_client -connect [server name]:443 -showcerts -CAfile /etc/ssl/certs/ca-certificates.crt
................. ................. Verify return code: 21 (unable to verify the first certificate)
Dice muy claramente que la verificación falló.
Cualquier paso que me falte, ¿cuál es el enfoque correcto para hacerlo? Al ver el error, pensé que CA no estaba instalado correctamente.
Leí muchos blogs, la mayoría explica lo mismo, pero no me funciona.
algún tiempo antes de trabajar en CentOS7, usé los siguientes comandos para instalar certificados en el sistema. update-ca-trust force-enable, update-ca-trust extract En los clientes CentOS, la validación del certificado funciona bien con los comandos anteriores.
Se agradece cualquier comentario.
Gracias
Respuesta1
Primero que nada, gracias a todos,
Mi problema es: el certificado de CA que se está instalando en CentOS correctamente, el mismo certificado no se está instalando en el servidor Ubuntu 16, lo que muestra el siguiente mensaje de advertencia. ADVERTENCIA: CA_50EA.pem no contiene un certificado o CRL: omitiendo 152 agregados, 0 eliminados; hecho.
Solución: Después de realizar diferentes enfoques, no se puede identificar la causa raíz exacta de este problema. De repente se me ocurrió una idea y esto resolvió mi problema.
Creé una nueva CA raíz a partir del archivo CA.pfx siguiendo los pasos de la URL a continuación y se instaló exitosamente en Ubuntu 16 Server sin ninguna advertencia y verificó las solicitudes de mis clientes con éxito. https://www.itsupportmiami.com/how-to-convert-a-pfx-to-a-seperate-key-crt-file/
Gracias a todos los que vieron mi consulta e intentaron responder.