Eu preciso de um nome de hash para o arquivo a ser postado no diretório CApath do Stunnel. Eu tenho alguns certificados neste diretório e eles estão funcionando bem. Além disso, tenho um servidor e uma chave de servidor:
cert = c:\Program Files (x86)\stunnel\server_cert.pem
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Quando tento calcular um hash do meu novo certificado, recebo um erro:
/etc/pki/tls/misc/c_hash cert.pem
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
Pelo que entendi, devo assinar meu certificado, mas não entendo como posso fazer isso. Por favor, forneça a solução.
PS:
A mensagem
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE:
postado quando fiz c_hash para cert.pem Este não é server_cert.pem, este é Root_CA e é um conteúdo parecido com
-----BEGIN CERTIFICATE-----
...6UXBNSDVg5rSx60=..
-----END CERTIFICATE-----
Quando eu escrevo
openssl x509 -noout -text -in cert.pem
No painel do console, vejo esta informação:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=BE, ST=BB, L=BB, O=BANKSYS NV, OU=SCY, CN=TEST Root CA
Validity
Not Before: May 31 08:06:40 2005 GMT
Not After : May 31 08:06:40 2020 GMT
Subject: C=BE, ST=BB, L=BB, O=BB NV, OU=SCY, CN=TEST Root CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:82:c8:58:1e:e5:7a:b2:63:a6:15:bd:f9:bb:1f:
............
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
76:70:AB:92:9B:B1:26:CE:9E:93:D8:77:4F:78:0D:B8:D4:6C:DA:C6
Signature Algorithm: sha1WithRSAEncryption
2c:7e:bd:3f:da:48:a4:df:8d:7c:96:58:f7:87:bd:e7:16:24:
...............
key
ecert
arquivos emhttps
objeto de configuração fornecido parawebpack.config
'sdevServer
.Respostas:
Como você está no Windows, certifique-se de que seu certificado no Windows seja "compatível", principalmente que não tenha
^M
no final de cada linhaSe você abrir, terá a seguinte aparência:
Para resolver "isso", abra-o com o
Write
Notepad ++ e converta-o para o "estilo" do WindowsTente executar
openssl x509 -text -inform DER -in server_cert.pem
e ver qual é a saída, é improvável que uma chave privada / secreta não seja confiável, a confiança só é necessária se você exportou a chave de um armazenamento de chaves, não é?fonte
openssl x509 -hash -noout -in
ele faz extração de hash, vê se ajuda?SSL_accept: 14094418: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
quando tento fazer a conexãoca
para seu certificado CAopenssl x509 -text -inform DER -in server_cert.pem
converti meup7b
certificado codificado (?) Em algo utilizável.Outra possível causa disso é tentar usar o módulo x509 em algo que não seja x509
O certificado do servidor está no formato x509, mas a chave privada é rsa
Assim,
fonte
Minha situação era um pouco diferente. A solução foi retirar o .pem de tudo o que estava fora das seções CERTIFICADO e CHAVE PRIVADA e inverter a ordem em que apareceram. Depois de converter do arquivo pfx para pem, o certificado ficou assim:
Depois de corrigir o arquivo, era apenas:
fonte
cat $SOURCE/privkey.pem $SOURCE/fullchain.pem > server.pem
Meu erro foi simplesmente usar o arquivo CSR em vez do arquivo CERT.
fonte
key is not found
Tive o mesmo problema no Windows, resolvi abri-lo no Notepad ++ e alterar a codificação de "UCS-2 LE BOM" para "UTF-8".
fonte
Altere a codificação no notepad ++ UTF-8 com BOM . É assim que funcionou para mim
fonte
Você pode obter esse erro enganoso se tentar fazer isso ingenuamente :
Criptografar dados usando uma chave privada não é permitido por design .
Você pode ver nas opções de linha de comando para abrir SSL que as únicas opções
encrypt -> decrypt
seguem em uma direçãopublic -> private
.A outra direção é intencionalmente evitada porque as chaves públicas basicamente "podem ser adivinhadas". Portanto, criptografar com uma chave privada significa que a única coisa que você ganha é verificar se o autor tem acesso à chave privada.
A
private key encrypt -> public key decrypt
direção é chamada de "assinatura" para diferenciá-la de uma técnica que pode realmente proteger os dados.Nota: minha descrição é uma simplificação para maior clareza. Leia esta resposta para mais informações .
fonte