Estoy adivinando un poco, sin embargo, sospecho que en el navegador está usando generateCRMFRequest
y importUserCertificate
en combinación. La documentación obsoleta de Javascript_crypto para Firefox proporciona una descripción general del proceso.
Se pueden lograr cosas similares con Internet Explorer. No he mirado, pero imagino que Safari también tiene algún nivel de soporte.
Estas son extensiones completamente no estándar y, según esta publicación en el foro CA/Browser, no son el futuro.
La clave se genera localmente, sin embargo, es difícil saber si la clave también se envía o no a la CA para "archivarla" como en generateCRMFRequest. Dado que javascript tiene acceso a la clave generada, posiblemente podría enviarla a través de Internet.
Última información, ¿existe una herramienta genérica para hacer esto en Linux? No que yo sepa. Ciertamente puede pasar por el proceso de:
openssl genrsa ... -out private.key
openssl req -new ... -inkey private.key -out certplease.csr
enviando certplease.csr a la CA. De ellos, obtendrá un certificado PKCS#7 firmado por ellos (y posiblemente otros certificados en la cadena, en caso de que sean necesarios).
Sin embargo, no creo que haya un almacén de claves privado estándar basado en el usuario en Linux; más bien, cada entorno de escritorio tiene uno ligeramente diferente.
Esta es una pregunta fascinante.
Primero, algunas ideas sobre el .cer
archivo que obtiene:consulte la lista de estándares PKCS; PKCS#7 es solo un contenedor para transportar datos firmados/encriptados, eso no nos dice nada sobre cuáles podrían ser esos datos. Si los datos internos estaban en formato PKCS#12, entonces es muy posible que la clave privada estuviera incluida. Supongo que la pregunta importante es:¿tuviste que ingresar una contraseña como parte de la importación del .cer
?
PKI administrada de Symantec
Hay algunos consejos (pero ninguna respuesta) en la guía de opciones de implementación de servicios de Symantec™ Managed PKI.
Estás describiendo claramente
2.1.1 Registro de navegador nativo
La inscripción del navegador nativo no requiere la instalación de software en la computadora del usuario final y funciona tanto en la nube como en escenarios híbridos.
Aunque carece bastante de detalles sobre dónde se genera la clave.
Hacer que el servidor genere una clave privada para usted y la empaquete en el .cer
archivo sería consistente con oraciones como esta:
... Esta opción es importante para garantizar que los certificados de alta seguridad, como una tarjeta inteligente o un token USB, terminen en el almacenamiento adecuado.
Dado que los certificados son, por definición, públicos, la única forma en que la frase "certificados de alta seguridad" tiene sentido es si incluye una clave privada.
También hacen muchas referencias a los servicios de administración de claves/inscripción de Microsoft Active Directory. Pero eso no explica tu caso de Linux.
Editar: Duh. Otra cosa que es posible es que el navegador tenga acceso a la funcionalidad criptográfica del sistema operativo (por ejemplo, Microsoft CAPI) y el javascript en la página de inscripción haga que el sistema operativo cree una clave privada y genere una solicitud de certificado que incluya una prueba de posesión de esa llave.