Como obter o nome comum do certificado do arquivo PEM

5

Vários artigos on-line levaram-me a acreditar que o nome comum de um certificado de servidor deve corresponder exatamente ao URL raiz para o qual ele é válido. No entanto, quando eu olho para um monte de arquivos em / etc / ssl / certs, através do comando openssl x509 -inform PEM -in <certfile.pem> -text , vejo que o valor CN é geralmente uma descrição legível do site (por exemplo, "Google Internet Authority"), não é um nome de domínio. Na verdade, não consigo ver nada em nenhum dos arquivos que se parece com um nome de domínio ou endereço IP, seja neles ou na saída de openssl s_client -connect <ip> .

Então, meu entendimento de 'nome comum' está incorreto? Como faço para recuperar o URL do certificado, para o qual o certificado é válido?

    
por Benubird 19.08.2013 / 15:59

1 resposta

1

Sim e não. Você está correto (exceto alguns detalhes adicionais) para certificados do servidor. No entanto, os certificados em / etc / ssl / certs são certificados de CA raiz e intermediários e não certificados de servidor. Ou seja, eles não são usados para identificação de servidor diretamente. Como tal, eles não têm essa preocupação correspondente.

Certificados de servidor, aqueles que os servidores realmente apresentam ao cliente, têm a preocupação correspondente e são o que você vê no primeiro certificado obtido ao se conectar. Se você olhar para os outros certificados na cadeia openssl constrói (e cospe para você), você verá referências ao estilo de certificados / etc / ssl / certs.

O próprio CN pode não corresponder se um dos campos alternativos definidos como correspondências legais for correspondido. Entre os métodos para adicionar nomes válidos adicionais para correspondência de certificado está o uso de uma extensão subjectAltName com o tipo dNSName, que especifica qual é o nome válido com o qual se deseja corresponder (pelo menos para fins de HTTPS). Existem outros para outros propósitos também.

    
por 19.08.2013 / 16:12