É possível ter certificado SSL para endereço IP, não nome de domínio?

281

Quero que meu site use URLs como http://192.0.2.2/...e https://192.0.2.2/...para conteúdo estático para evitar cookies desnecessários na solicitação E para evitar solicitações DNS adicionais.

Existe alguma maneira de obter o certificado SSL para esse fim?

Evgenyt
fonte
3
Esta pergunta pode ser do seu interesse: você pode, mas o endereço IP deve estar em uma entrada SAN do tipo de endereço IP, não na CN do DN do Assunto.
7788 Bruno
14
LetsEncrypt não faz isso. "" "" xxxx é um endereço IP. A autoridade de certificação Let's Encrypt não emitirá certificados para um endereço IP simples. "" "
kommradHomer
1
O Fórum do Navegador C / A fornece um conjunto de políticas de emissão. Obviamente, é seguido pelos navegadores. CA / B não permite mais endereços IP. Outro conjunto de políticas de emissão é mantido pela IETF. A PKI da IETF é chamada PKIX. PKIX permite endereços IP. O PKIX é seguido pela maioria dos softwares [gratuitos?], Como cURL e Wget. Não consigo descobrir o certificado para 1.1.1.1 . Deve ser proibido de acordo com as políticas da CA / B. Talvez o CA / B tenha mudado suas políticas.
JWW

Respostas:

169

De acordo com esta resposta , é possível, mas raramente usado.

Quanto a como obtê-lo: eu tentaria simplesmente pedir um com o provedor de sua escolha e inserir o endereço IP em vez de um domínio durante o processo de pedido.

No entanto, a execução de um site em um endereço IP para evitar a pesquisa de DNS soa muito como uma micro otimização desnecessária para mim. Você economizará alguns milissegundos na melhor das hipóteses, e isso será por visita , pois os resultados do DNS são armazenados em cache em vários níveis.

Não acho que sua ideia faça sentido do ponto de vista de otimização.

Pekka
fonte
9
AFAIK, 1 vez por minuto (cache DNS do Firefox) e 1 vez por 30 minutos para o IE. Isso difere do TTL dos registros DNS. Também leva cerca de 20ms para mim, dependendo do domínio e da rapidez com que os servidores NS (que também devem ser resolvidos primeiro :)) Também quero evitar meus longos cookies (meus auth + cookies do Google Analytics) para cada solicitação estática. Portanto, usar IP em vez de comprar um domínio separado é bom. BTW, stackoverflow, basecamphq usam domínio separado para conteúdo estático. O uso do IP também removerá solicitações DNS desnecessárias.
precisa saber é o seguinte
12
Eu absolutamente entendo o seu ponto com os cookies, você está totalmente certo. Mas mudar para um IP SSL para salvar os poucos ms de pesquisa de DNS parece mais incômodo para mim do que vale a pena. Além disso, você pode ter problemas para levar seu IP com você se precisar mudar de provedor - provavelmente não é possível. Mover um domínio é muito mais fácil e deve ser possível mover um certificado com ele até a metade facilmente.
Pekka
2
A ferramenta Page Speed ​​do Google sempre sugere "Servir os seguintes recursos JavaScript do mesmo host que o documento principal (xxxx.com) ou adiar o carregamento desses recursos, se possível". Não estou classificando a ferramenta Page Speed ​​como bíblia, mas de qualquer maneira isso significa que a otimização de DNS não foi inventada por mim. Estou apenas tentando deixar minha lista de verificação de velocidade da página verde sempre que possível.
Evgenyt
11
@ Evgenyt: Eu não acho que seja por causa da pesquisa de DNS, que, como afirmado, é armazenada em cache em tantos níveis que não pode ser um problema de desempenho. O mais provável é permitir que os navegadores direcionem seus pedidos. Manter a conexão com o host aberta, evitando a configuração de conexões adicionais.
vdstw
5
Eu concordo com a resposta. Além disso, encontramos um problema com essa configuração. Acabou que o navegador Chrome (39.0.2171.93) no sistema operacional Android (4.4,5.0; funciona em 4.0,4) não reproduz arquivos de áudio via HTTPS se o endereço IP for usado como destino do certificado. Costumávamos usar essa configuração em nosso ambiente de teste, mas começaremos a usar nomes de domínio.
ENggg
58

A resposta curta é sim, desde que seja um endereço IP público.

A emissão de certificados para endereços IP reservados não é permitida e todos os certificados emitidos anteriormente para endereços IP reservados foram revogados a partir de 1 de outubro de 2016.

De acordo com o fórum do CA Browser, pode haver problemas de compatibilidade com certificados para endereços IP, a menos que o endereço IP esteja nos campos commonNamee subjectAltName. Isso ocorre devido às implementações SSL herdadas que não estão alinhadas com o RFC 5280, principalmente o Windows OS anterior ao Windows 10.


Fontes:

  1. Diretrizes sobre endereços IP em certificados CA Browser Forum
  2. Requisitos de linha de base 1.4.1 Fórum do CA Browser
  3. O (em breve) nome não tão comum unmitigatedrisk.com
  4. RFC 5280 IETF

Nota: uma versão anterior desta resposta afirmou que todos os certificados de endereço IP seriam revogados em 1 de outubro de 2016. Agradecemos a Navin por apontar o erro.

regdoug
fonte
5
Não é verdade, o globalsign ainda emite certificados para IPs. O fórum da autoridade de certificação / navegador não gosta de ver IPs particulares em alguns casos, mas não tem nada contra IPs públicos.
Navin
1
Parece que minhas informações podem estar desatualizadas. Analisarei mais e editarei se você estiver correto.
precisa
Não é verdade, olhada 1.1.1.1 Eles obter um certificado SSL para ip em 2019 e válido para 2021 a partir DigiCert
homem de bronze
@bronzeman que é um endereço IP público, portanto, sim, você pode obter um certificado. Os únicos endereços que não podem receber um certificado são en.wikipedia.org/wiki/Reserved_IP_addresses
regdoug
@DustWolf, de acordo com a RFC 5280, "Quando a extensão subjectAltName contiver um endereço IP, o endereço DEVE ser armazenado na cadeia de octetos em" ordem de bytes da rede ", conforme especificado em [RFC791]. ... Para a versão 4 do IP ..., a cadeia de octetos DEVE conter exatamente quatro octetos. " Resumindo, você não pode usar uma sub-rede no campo subjectAltName
regdoug 04/12/19
31

A resposta, eu acho, é sim. Verifique este link, por exemplo.

Emitindo um certificado SSL para um endereço IP público

Um certificado SSL normalmente é emitido para um Nome de domínio totalmente qualificado (FQDN), como " https://www.domain.com ". No entanto, algumas organizações precisam de um certificado SSL emitido para um endereço IP público. Esta opção permite especificar um endereço IP público como o Nome comum em sua Solicitação de assinatura de certificado (CSR). O certificado emitido pode então ser usado para proteger conexões diretamente com o endereço IP público (por exemplo, https://123.456.78.99 .).

Klaus Byskov Pedersen
fonte
5
Também funciona com IP privado estático? Gosta de uma LAN?
Bonjour
@Klaus Byskov Pedersen Você poderia me fornecer um recurso sobre como fazer isso?
reyhane
2
@ShivSingh Alguma fonte? Não creio que nenhuma autoridade de certificação conhecida emita um certificado para um endereço IP privado.
31560 Franklin Franklin Yu
22

Sim. O Cloudflare o utiliza para sua página inicial de instruções de DNS: https://1.1.1.1

mehulmpt
fonte
8
Isso não é exatamente o que parece. Se você inspecionar o certificado, o Common Namecampo é cloudflare-dns.come 1.1.1.1é listado apenas em Certificate Subject Alt Name.
bitinerant 15/02/19
3
@bitinerant, o Nome Comum será ignorado se um Nome Alternativo do Assunto estiver presente . De fato, o Nome Comum está obsoleto e apenas a SAN é realmente relevante.
Yogu 17/08/19
3

O fórum C / A Browser define o que é e o que não é válido em um certificado e o que as CAs devem rejeitar.

De acordo com os requisitos básicos para emissão e gerenciamento de certificados de confiança pública públicos, as CAs não devem, desde 2015, emitir certificados nos quais o nome comum ou campos de nomes alternativos comuns contenham um IP reservado ou um nome interno, onde endereços IP reservados são IPs que a IANA listou como reservada - que inclui todos os IPs NAT - e nomes internos são nomes que não são resolvidos no DNS público.

Os endereços IP públicos PODEM ser usados ​​(e o documento de requisitos da linha de base especifica que tipos de verificação uma CA deve executar para garantir que o requerente seja o proprietário do IP).

Chris Becke
fonte
0

Depende inteiramente da autoridade de certificação que emite um certificado.

No caso de Let's Encrypt CA, eles não emitem certificado TLS no endereço IP público. https://community.letsencrypt.org/t/certificate-for-public-ip-without-domain-name/6082

Para conhecer sua autoridade de certificação, você pode executar o seguinte comando e procurar uma entrada marcada abaixo.

curl -v -u <username>:<password> "https://IPaddress/.."

insira a descrição da imagem aqui

Shahid Hussain
fonte