Tornando-se Autoridade de Certificação e Gerando um Certificado

0

Uma pergunta rápida.

Eu assino um certificado para o PKILabServer.com (listado em Common Name),

abra /etc/hosts e adicione a seguinte entrada 127.0.0.1 PKILabServer.com

Em seguida, inicie o servidor usando o comando % openssl s_server –cert server.pem -www

Eu aponto o navegador para o link e ele mostra " Certificado de segurança inválido ... " e então eu carrego meu arquivo de certificado ca.crt e o site carrega perfeitamente.

A questão é que, como o PKILabServer.com aponta para o localhost, se usarmos o link , estaremos nos conectando ao mesmo servidor web .

Mas quando eu aponto o navegador para localhost:4433 , recebo um erro dizendo "Este certificado é válido apenas para pkilabserver.com ..." Eu sou obrigado a explicar o motivo para isso no meu projeto, e isso é o que eu respondi. Por favor, corrija-me se estiver errado.

Isso ocorre porque a Solicitação de Assinatura de Certificado que foi gerada foi assinada exclusivamente para o PKILabServer.com (como foi listado em Nome Comum) Como o arquivo / etc / hosts tinha entradas para muitos outros sites que estavam listados em localhost, apontar o navegador para localhost:4433 levaria o site listado no arquivo / etc / hosts e, como os sites não coincidem, nós recebemos o erro que "O certificado é válido apenas para PKILabServer.com"

    
por Data Shark 13.11.2016 / 22:06

1 resposta

2

Acho que você está confundindo a função de um endereço IP e nome de domínio com relação às conexões HTTPS.

Um certificado (no contexto de HTTPS) não tem conhecimento de endereços IP e cuida menos - tudo o que importa são os nomes de domínio aos quais está associado - e estes são codificados permanentemente no certificado.

Quando sua conexão HTTPS está sendo estabelecida, o nome de domínio é passado usando um cabeçalho ("host: xxxx") - e o certificado valida contra isso, independentemente da interface em que ele entra.

Por isso, quando você vai para o localhost: XXX, o certificado não corresponde, pois o host local não está na linha de hosts do cabeçalho e gera um erro. Da mesma forma, mapear 127.0.0.1 para o nome de domínio e usar o nome de domínio funciona bem.

[Eu notei, por uma questão de completude, que eu assumo que o Virtualhost pode se ligar a qualquer IP com a mesma configuração]

    
por 13.11.2016 / 22:13