creando certificados de cliente

creando certificados de cliente

Tengo un certificado SSL de una autoridad certificadora de terceros. Es un .cerarchivo. El certificado está instalado y funcionando correctamente en IIS7.

El certificado muestra sus propósitos previstos como autenticación de servidor, autenticación de cliente.

El sitio requiere autenticación mediante certificados de cliente. Erannousando el mapeo de certificados de cliente, sino simplemente usando certificados de cliente como medida de autenticación; si tiene uno, está autenticado.

  • ¿Cómo puedo crear un certificado de cliente?
  • ¿La AC tiene que hacer esto, involucrando a otro CSR?
  • ¿Es esto algo que puedo hacer yo mismo con otra herramienta? (OpenSSL u otro)
  • ¿Qué formato se requiere para los certificados de cliente?

Respuesta1

La autenticación de certificados de cliente en IIS (o la mayoría de los HTTPD) es algo complicada. Tienes que asignar los usuarios al certificado. Los propios certificados pueden ser emitidos por cualquier CA en la que confíe el servidor; puedeconfigurar una instancia de AD CSpara emitir los certificados, o incluso utilizar una copia local deAbiertoSSLpara crear los certificados si lo desea.

Hay un artículo sobreIIS.netdescribiendoAsignación de certificados de cliente; con información sobre cómo habilitarlo y asociar mediante programación certificados con usuarios.

Editar:
La versión ultracorta de la emisión de certificados de cliente con OpenSSL.

  1. openssl genrsa -des3 -out my_ca.key 4096
  2. openssl req -new -key my_ca.key -out my_ca.csr
  3. openssl x509 -req -days 365 -in my_ca.csr -signkey my_ca.key -out my_ca.crt
    Ahora tiene un certificado y una clave de CA.
  4. Para cada uno de los certificados de cliente que generará, necesitará una Solicitud de firma de certificado. Puede usar el mismo certificado para todos los usuarios si lo desea; sin embargo, no es una idea particularmente buena y definitivamente también debería requerir alguna otra forma de autenticación (como una contraseña). Los clientes pueden generar las CSR ellos mismos o usted puede hacerlo nuevamente con openssl (tenga en cuenta que cada CSR necesita primero una clave privada):
    openssl genrsa -des3 -out client1.key 1024
    openssl req -new -key client1.key -out client1.csr
  5. Edite su archivo openssl.cnf y complete las partes de CA relevantes. Ellos son:

    [ ca ]
    default_ca      = CA_default            # The default ca section
    
    [ CA_default ]
    dir            = ./                    # top dir
    database       = $dir/my_ca.index      # index file.
    new_certs_dir  = $dir/newcerts         # new certs dir
    certificate    = $dir/my_ca.crt        # The CA cert
    serial         = $dir/my_ca.srl        # serial no file
    private_key    = $dir/my_ca.key        # CA private key
    RANDFILE       = $dir/rand             # random number file
    default_days   = 365                   # how long to certify for
    default_crl_days= 30                   # how long before next CRL
    default_md     = md5                   # md to use
    policy         = policy_any            # default policy
    email_in_dn    = no                    # Don't add the email into cert DN
    name_opt       = ca_default            # Subject name display option
    cert_opt       = ca_default            # Certificate display option
    copy_extensions = none                 # Don't copy extensions from request
    
    [ policy_any ]
    countryName            = supplied
    stateOrProvinceName    = optional
    organizationName       = optional
    organizationalUnitName = optional
    commonName             = supplied
    emailAddress           = optional
    
  6. Firme la clave usando el certificado CA
    openssl ca -in client1.csr -out client1.crt

  7. Si creó la clave y la CSR para el cliente, deberá exportarlos. Exporte el par de certificados a un archivo PKCS12 para que el cliente pueda importarlo.
    openssl pkcs12 -export -in client1.crt -inkey client1.key -out client1.p12
  8. Si completó el punto 7, envíe al cliente el archivo PKCS12 que creó; de lo contrario, envíeles el Certificado del n.º 6.

Tenga en cuenta que esta es una mala forma de emitir certificados firmados porque simplemente otorga cualquier tipo de certificado especificado por el CSR. Asegúrate de prestar atención a lo que estás haciendo. Si va a emitir muchos certificados, necesitará invertir algo de tiempo en una configuración más segura.

información relacionada