Мне нужно хеш-имя файла для публикации в каталоге CApath Stunnel. У меня есть сертификаты в этом каталоге, и они хорошо работают. Кроме того, у меня есть серверный серт и серверный ключ:
cert = c:\Program Files (x86)\stunnel\server_cert.pem
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Когда я пытаюсь вычислить хеш моего нового сертификата, я получаю сообщение об ошибке:
/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
Насколько я понимаю, я должен подписать свой сертификат, но не понимаю, как я могу это сделать. Пожалуйста, дайте решение.
PS:
Сообщение
unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE:
опубликовано, когда я сделал c_hash для cert.pem Это не server_cert.pem, это Root_CA, и он содержит что-то вроде
-----BEGIN CERTIFICATE-----
...6UXBNSDVg5rSx60=..
-----END CERTIFICATE-----
Когда я пишу
openssl x509 -noout -text -in cert.pem
В панели консоли я вижу эту информацию:
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
иcert
файлы вhttps
объекте конфигурации предоставляютсяwebpack.config
«сdevServer
.Ответы:
Поскольку вы работаете в Windows, убедитесь, что ваш сертификат в Windows "совместим", а самое главное, что у него нет
^M
в конце каждой строкиЕсли открыть его, это будет выглядеть так:
Чтобы решить эту проблему, откройте его с помощью
Write
или Notepad ++ и конвертируйте в «стиль» Windows.Попробуйте запустить
openssl x509 -text -inform DER -in server_cert.pem
и посмотреть, что будет на выходе, маловероятно, что закрытый / секретный ключ будет ненадежным, требуется только доверие, если вы экспортировали ключ из хранилища ключей, не так ли?источник
openssl x509 -hash -noout -in
он извлекает хеш, посмотрите, поможет ли?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
при попытке установить соединениеca
сертификат для своих сертификатов CA,openssl x509 -text -inform DER -in server_cert.pem
преобразовал мойp7b
закодированный (?) Сертификат во что-то пригодное для использования.Другая возможная причина этого - попытка использовать модуль x509 на чем-то, кроме x509.
Сертификат сервера имеет формат x509, но закрытый ключ - rsa.
Так,
источник
Моя ситуация была немного другой. Решение заключалось в том, чтобы удалить .pem из всего, что находится за пределами разделов CERTIFICATE и PRIVATE KEY, и изменить порядок их появления. После преобразования из pfx в файл pem сертификат выглядел так:
После исправления файла было просто:
источник
cat $SOURCE/privkey.pem $SOURCE/fullchain.pem > server.pem
Моя ошибка заключалась в том, что я просто использовал файл CSR вместо файла CERT.
источник
key is not found
У меня была такая же проблема с Windows, которую можно было исправить, открыв ее в Notepad ++ и изменив кодировку с «UCS-2 LE BOM» на «UTF-8».
источник
Измените кодировку в блокноте ++ UTF-8 с помощью спецификации . Вот как это сработало для меня
источник
Вы можете получить эту вводящую в заблуждение ошибку, если наивно попытаетесь сделать это:
Шифрование данных с использованием закрытого ключа запрещено по замыслу .
Вы можете видеть из параметров командной строки для open ssl, что единственные параметры должны
encrypt -> decrypt
идти в одном направленииpublic -> private
.Другое направление намеренно предотвращается, потому что открытые ключи в основном «можно угадать». Таким образом, шифрование с помощью закрытого ключа означает, что единственное, что вы получаете, - это подтверждение того, что автор имеет доступ к закрытому ключу.
Это
private key encrypt -> public key decrypt
направление называется «подписанием», чтобы отличать его от метода, который действительно может защитить данные.Примечание: мое описание является упрощением для ясности. Прочтите этот ответ для получения дополнительной информации .
источник