La solicitud de certificado se genera donde se genera la clave privada ; y la clave privada debe, normalmente, ser generada por el cliente, ya que el cliente finalmente la almacenará.
Puede tener un modelo donde usted (como servidor) genere claves para los clientes y luego distribuya las claves y los certificados a los clientes, pero surge la pregunta de por qué usa certificados del cliente en el primer lugar: los certificados son para situaciones en las que el comprobador (el cliente, que quiere ser autenticado) demuestra su identidad al verificador (el servidor) sin proporcionar suficiente información al verificador para permitirle personificar al probador después de hablar con un tercero partido. En una configuración clásica de cliente / servidor, esto es excesivo; y esta propiedad adicional desaparece si el propio servidor conoce las claves privadas (incluso de forma transitoria).
Además, la CA de terceros lo desangrará al facturarle cada certificado de cliente. El uso de una CA de terceros para un negocio puramente privado (los certificados de cliente son para usted, no para cualquier otra persona) parece un dinero perdido. Para el certificado servidor , esto es comprensible: desea un certificado que todos los clientes potenciales reconocerán como válido, es decir, relacionado con un certificado de CA raíz que ya tienen. Pero en la otra dirección, este es solo tu propio servidor. Probablemente valga la pena realizar tu propia CA (por ejemplo, con EJBCA ).
Suponiendo que el uso del certificado de cliente es una característica inevitable de la situación actual (por ejemplo, un gerente de alto rango ha escuchado el término "certificado" y se ha enamorado de él), entonces puede producirlos en el lado del servidor hablando. a DigiCert (o su propia CA, si ejecuta una) con cualquier método que sea apropiado para ellos. En un sistema Windows, la generación de claves privadas, la creación de solicitudes de certificados y la aceptación del certificado resultante se pueden realizar con la herramienta de línea de comandos certreq . Una vez que tenga la clave privada (nunca abandonó su máquina) y el certificado, expórtelos como un archivo PKCS # 12 (también llamado "PFX"), protegido por una contraseña, y envíelo al cliente, quien los importará en su navegador. Esta transferencia debería ocurrir con cierta protección, por supuesto ... aunque un archivo PKCS # 12 está bastante bien protegido por la contraseña, aún debe transferir esa contraseña al usuario de alguna manera.