AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 837307
Accepted
Darren
Darren
Asked: 2017-03-10 08:47:02 +0800 CST2017-03-10 08:47:02 +0800 CST 2017-03-10 08:47:02 +0800 CST

Erro SSL_ERROR_NO_CYPHER_OVERLAP com certificado assinado

  • 772

Minha empresa forneceu um aplicativo baseado em Tomcat/MySQL para um cliente que, por padrão, usa http. A pedido do cliente, habilitei isso para usar https criando um certificado autoassinado. Isso funcionou sujeito ao erro esperado do navegador ao usar um certificado autoassinado.

Depois de um teste de penetração, eles decidiram que precisávamos desabilitar alguns protocolos e cifras SSL obsoletos, então alterei o conector SSL em meu tomcat server.xml para ficar assim:

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1.2,TLSv1.1" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_WITH_AES_128_GCM_SHA256"
    keystoreFile="/path/to/keystore/file"
    keystorePass="password" />

Isso satisfez o teste de penetração e o aplicativo continuou a funcionar nos três navegadores principais (Chrome, Firefox e IE). No entanto, o teste de penetração também sinalizou que, idealmente, não deveríamos usar um certificado autoassinado, então, seguindo estes guias , criei um CSR e fiz com que o cliente criasse um certificado assinado em seu domínio interno (o servidor pode ser acessado por um par de URLs diferentes, daí a necessidade de criar um CSR com um SAN).

Adicionei o certificado a um novo keystore e corrigi o caminho no arquivo server.xml de forma apropriada. Agora, quando tento conectar, recebo o seguinte erro (isso é do Firefox, mas todos os navegadores produzem um erro semelhante):

Falha na Conexão Segura

Ocorreu um erro durante uma conexão com 172.31.1.36:8443. Não é possível se comunicar com segurança com o par: sem algoritmo(s) de criptografia comum. Código do erro: SSL_ERROR_NO_CYPHER_OVERLAP

A página que você está tentando visualizar não pode ser exibida porque não foi possível verificar a autenticidade dos dados recebidos. Entre em contato com os proprietários do site para informá-los sobre esse problema.

Meu entendimento é que o certificado não controla quais cifras ou protocolos devem ser usados, então não entendo por que isso aconteceu. Isso é um erro que cometi ao produzir o CSR ou pode ser um erro que o cliente cometeu ao gerar o certificado?

-EDITAR-

Parece que estou recebendo erros em todos os lugares que viro. Se eu tentar importar a chave para um keystore, recebo isto:

cat <keyfile> | openssl  pkcs12 -export -out <keystore>.p12
Enter pass phrase:
unable to load certificates

Ou isto:

keytool -importkeystore -srckeystore <keyfile> -srcstoretype pkcs12 -destkeystore <keystore>.jks
Enter destination keystore password:
Re-enter new password:
Enter source keystore password:
keytool error: java.io.IOException: toDerInputStream rejects tag type 45

Eu tenho o cliente para me enviar a cadeia de certificados e quando tento importar recebo este erro:

keytool -import -trustcacerts -alias tomcat -file <certchain>.p7b -keystore <keystorefile>.jks
Enter keystore password:
keytool error: java.lang.Exception: Input not an X.509 certificate

Eu encontrei algumas soluções sobre como converter o arquivo pkcs para x.509, mas depois recebi outros erros, então estou totalmente preso agora.

tomcat ssl-certificate ssl-certificate-errors
  • 2 2 respostas
  • 13177 Views

2 respostas

  • Voted
  1. Best Answer
    Darren
    2017-03-14T02:17:57+08:002017-03-14T02:17:57+08:00

    A causa raiz de todos os problemas era que o certificado estava no formato errado.

    Seguindo as informações aqui , descobri que o certificado estava no formato DER. Eu converti da seguinte forma:

    openssl x509 -inform der -in certfile.cer -out new_certfile.pem
    
    • 1
  2. F1Linux
    2020-04-29T03:49:21+08:002020-04-29T03:49:21+08:00

    A mensagem de erro é um pouco falsa.

    Ao configurar um MikroTik para acesso Webfig https , você receberá este erro se apenas criar e usar um certificado que não foi assinado por uma CA. Quando o navegador vê um certificado não assinado, ele vomita o erro:

    " Código de erro: SSL_ERROR_NO_CYPHER_OVERLAP "

    Não vá para a toca do coelho investigando cifras incompatíveis ou similares: você só precisa assinar seu certificado com uma CA e as coisas funcionarão conforme o esperado.

    O seguinte é um procedimento específico do MikroTik para eliminar o erro.

    AVISO:

    Não basta recortar e colar : substitua meus espaços reservados por valores sensatos ;-)

    • " CAyourDomain ": substitua "yourDomain pelo domínio da sua organização
    • " estado ": especifique um condado para aqueles que residem fora dos EUA
    • " subject-alt-name ": especifique o IP PÚBLICO do roteador
    • " ca-crl-host ": novamente, especifique o IP PÚBLICO do roteador
    • CA " key-size ": observe que usar " 4096 " pode maximizar a CPU e travar modelos com provisionamento thin ao assinar
    • Ajuste os outros parâmetros conforme necessário

    Criar CA:

    /certificate add name=CAyourDomain-template common-name=CAyourDomain country=GB days-valid=3650 key-size=4096 locality="Your City" organization="Your Organization" state=Hertfordshire trusted=yes unit="Technical Services" subject-alt-name="IP:XXX.XXX.XXX.XXX" key-usage=digital-signature,key-cert-sign,crl-sign;
    
    /certificate sign CAyourDomain-template ca-crl-host="XXX.XXX.XXX.XXX" name=CAyourDomain
    

    Criar certificado:

    /certificate add name=webfig-template common-name="webfig" country=GB days-valid=3650 key-size=4096 locality="Your City" organization="Your Organization" state=Hertfordshire trusted=yes unit="Technical Services" subject-alt-name="IP:XXX.XXX.XXX.XXX" key-usage=digital-signature,key-encipherment,data-encipherment,tls-server,tls-client;
    
    /certificate sign webfig-template ca=CAyourDomain name=webfig
    
    /certificate set webfig trusted=yes
    

    Especifique o certificado:

    Agora que o certificado " webfig " foi assinado por uma CA, você finalmente precisa especificá-lo aqui para usá-lo:

    " IP " > " Serviços " e ative " www-ssl " e especifique " webfig " certificado criado e o acesso HTTPS à sub-rede deve ser permitido de

    • 0

relate perguntas

  • Como desabilitar o cache do tomcat? Estou tendo problemas estranhos com arquivos estáticos

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve