openssl: gere pedido de certificado com nomes alternativos de entidades não-DNS

6

Para criar uma solicitação de certificado contendo nomes alternativos de assunto (SANs) para um host, com o openssl, posso usar um arquivo de configuração como este (recortado):

[req]
req_extensions = v3_req
[ v3_req ]
subjectAltName = @alt_names
[alt_names]
DNS = xyz.example.com

Se eu precisar fornecer um nome distinto ou um nome principal de usuário, como devo configurar a seção alt_names de uma solicitação de certificado de usuário?
Por exemplo, tentei

[alt_names]
UPN = [email protected]

Mas recebi este erro:

Error Loading request extension section v3_req
5356:error:22075075:X509 V3 routines:v2i_GENERAL_NAME_ex:unsupported option:.\crypto\x509v3\v3_alt.c:557:name=userPrincipalName
5356:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:.\crypto\x509v3\v3_conf.c:93:name=subjectAltName, value=@alt_names
    
por Paolo Tedesco 19.05.2014 / 10:35

2 respostas

7

Você pode especificar praticamente qualquer coisa que sua CA permita.

A RFC relevante é RFC5280 . Ele diz na seção 4.2.1.6. "Nome alternativo do assunto"

The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate. Defined options include an Internet electronic mail address, a DNS name, an IP address, and a Uniform Resource Identifier (URI). Other options exist, including completely local definitions. Multiple name forms, and multiple instances of each name form, MAY be included. Whenever such identities are to be bound into a certificate, the subject alternative name (or issuer alternative name) extension MUST be used; however, a DNS name MAY also be represented in the subject field using the domainComponent attribute as described in Section 4.1.2.4. Note that where such names are represented in the subject field implementations are not required to convert them into DNS names.

Você deve ler o restante dessa seção e, em seguida, verificar com sua CA o que eles suportam. Vale a pena notar que sua CA deve verificar se todos os nomes alternativos de assunto estão corretos.

Para usar um endereço de e-mail, o RFC diz na seção 4.1.2.6

Conforming implementations generating new certificates with electronic mail addresses MUST use the rfc822Name in the subject alternative name extension (Section 4.2.1.6) to describe such identities. Simultaneous inclusion of the emailAddress attribute in the subject distinguished name to support legacy implementations is deprecated but permitted.

Então, ao invés de UPI, você deve usar rfc822Name.

    
por 19.05.2014 / 10:58
8

Depois de tentar algumas opções (obrigado Jenny) acabei de verificar o código-fonte e descobri que o arquivo de configuração espera um desses valores:

  • email
  • URI
  • DNS
  • RID
  • IP
  • dirName
  • outro nome

Então, no meu caso, escrevi

[alt_names]
email = [email protected]

E o openssl gerou o arquivo de solicitação.

    
por 19.05.2014 / 11:28