windows - setup - OpenSSL: rutinas PEM: PEM_read_bio: no start line: pem_lib.c: 703: Esperando: CERTIFICADO DE CONFIANZA
openssl windows create self signed certificate (7)
1) Ya que está en Windows, asegúrese de que su certificado en Windows sea "compatible", lo más importante es que no tiene ^M
al final de cada línea
Si lo abres se verá así:
-----BEGIN CERTIFICATE-----^M
MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM^M
Para resolver "esto" ábralo con Write
o Notepad ++ y pídale que lo convierta a Windows "style"
2) Intente ejecutar openssl x509 -text -inform DER -in server_cert.pem
y vea cuál es el resultado, es poco probable que una clave privada / secreta no sea de confianza, solo se necesita confianza si exportó la clave de un almacén de claves, ¿Tuviste?
Necesito un nombre hash para el archivo para su publicación en el directorio CApath de Stunnel. Tengo algunos certs en este directorio y están funcionando bien. También tengo un servidor sert y clave de servidor:
cert = c:/Program Files (x86)/stunnel/server_cert.pem
key = c:/Program> Files (x86)/stunnel/private/server_key.pem
Cuando intento calcular un hash de mi nuevo certificado, aparece un error:
/ etc / pki / tls / misc / c_hash cert.pem
no se puede cargar el certificado 140603809879880: error: 0906D06C: rutinas PEM: PEM_read_bio: no línea de salida: pem_lib.c: 703: Esperando: CERTIFICADO DE CONFIANZA
Según tengo entendido, debo firmar mi certificado, pero no entiendo cómo puedo hacerlo. Por favor, proporciona la solución.
PD:
El mensaje
no se puede cargar el certificado 140603809879880: error: 0906D06C: rutinas PEM: PEM_read_bio: sin línea de inicio: pem_lib.c: 703: Esperando: CERTIFICADO DE CONFIANZA:
publicado cuando hice c_hash para cert.pem Esto no es server_cert.pem, esto es Root_CA y es contenido algo así como
----- BEGIN CERTIFICATE -----
... 6UXBNSDVg5rSx60 = ..
----- FIN CERTIFICADO -----
Cuando yo escribo
openssl x509 -noout -text -in cert.pem
En el panel de la consola veo esta información:
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:
...............
Cambiar la codificación en el bloc de notas ++ UTF-8 con BOM . Así es como me funcionó
Mi error fue simplemente usar el archivo CSR en lugar del archivo CERT.
Mi situación era un poco diferente. La solución fue quitar el .pem de todo lo que estaba fuera de las secciones CERTIFICATE y PRIVATE KEY e invertir el orden en el que aparecían. Después de convertir de pfx a archivo pem, el certificado se veía así:
Bag Attributes
localKeyID: ...
issuer=...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Bag Attributes
more garbage...
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Después de corregir el archivo, fue solo:
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Otra posible causa de esto es tratar de usar el módulo x509 en algo que no es x509
El certificado del servidor es el formato x509, pero la clave privada es rsa
Entonces openssl rsa -noout -text -in privkey.pem openssl x509 -noout -text -in servercert.pem
Puede obtener este error engañoso si ingenuamente intenta hacer esto:
Plain text -> Private Key encrypt -> <enc text> -> Public Key decrypt ->
El diseño no permite el cifrado de datos utilizando una clave privada.
Puede ver desde las opciones de línea de comando para abrir ssl que las únicas opciones para encrypt -> decrypt
van en una dirección public -> private
.
-encrypt encrypt with public key
-decrypt decrypt with private key
La otra dirección se previene intencionalmente porque las claves públicas básicamente "pueden adivinarse". Entonces, encriptar con una clave privada significa que lo único que obtienes es verificar que el autor tenga acceso a la clave privada.
El private key encrypt -> public key decrypt
dirección de private key encrypt -> public key decrypt
se denomina "firma" para diferenciarlo de ser una técnica que realmente puede proteger datos.
-sign sign with private key
-verify verify with public key
Nota: mi descripción es una simplificación para la claridad. Lee esta respuesta para más información .
Tuve el mismo problema al utilizar Windows, solucioné abriendo en Notepad ++ y cambiando la codificación de "UCS-2 LE BOM" a "UTF-8".