-
Если кто баловался с цепочками сертификатов в OpenSSL — есть пара вопросов.Recommended by (1): @skobkin-ru
Replies (50)
-
@Avatar, Ситуация: есть купленный wildcard-сертификат от RapidSSL. Есть промежуточный сертификат. Делаю так:
openssl verify -CAfile RapidSSL_CA_bundle.pem server.crt
server.crt: C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
error 2 at 2 depth lookup:unable to get issuer certificate
Что я делаю не так?
P.S. Конечная цель — наклепать своих сертификатов, подписанных этим. -
@StraNNicK, А он вообще предназначен для этих целей? openssl x509 -text -in RapidSSL_CA_bundle.pem
Ну и я не понял, что ты проверяешь (% -
-
@Avatar, openssl x509 -text -in RapidSSL_CA_bundle.pem
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 145105 (0x236d1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
Validity
Not Before: Feb 19 22:45:05 2010 GMT
Not After : Feb 18 22:45:05 2020 GMT
Subject: C=US, O=GeoTrust, Inc., CN=RapidSSL CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
<skip>
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
6B:69:3D:6A:18:42:4A:DD:8F:02:65:39:FD:35:24:86:78:91:16:30
X509v3 Authority Key Identifier:
keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.geotrust.com/crls/gtglobal.crl
Authority Information Access:
OCSP — URI:http://ocsp.geotrust.com
Signature Algorithm: sha1WithRSAEncryption
<skip>
-----BEGIN CERTIFICATE-----
<skip>
-----END CERTIFICATE----- -
@StraNNicK, А. Тебе просто проверить надо. Ну, по идее ты правильно делаешь. Покажи что у тебя в .crt
-
@Avatar, openssl x509 -text -in server.crt
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 592475 (0x90a5b)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=GeoTrust, Inc., CN=RapidSSL CA
Validity
Not Before: Nov 4 15:08:17 2012 GMT
Not After : Nov 7 05:46:23 2013 GMT
Subject: serialNumber=M8dtwj024yaUP9af6lR04qMCxUNE5eTn, OU=GT77387686, OU=See www.rapidssl.com/resources/cps (c)12, OU=Domain Control Validated — RapidSSL(R), CN=*.st65.ru
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
<skip>
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:6B:69:3D:6A:18:42:4A:DD:8F:02:65:39:FD:35:24:86:78:91:16:30
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Subject Alternative Name:
DNS:*.st65.ru, DNS:st65.ru
X509v3 CRL Distribution Points:
Full Name:
URI:http://rapidssl-crl.geotrust.com/crls/rapidssl.crl
X509v3 Subject Key Identifier:
A3:58:4B:D1:5A:0B:40:78:6D:AF:B7:B9:5A:EA:A8:43:25:D6:5D:58
X509v3 Basic Constraints: critical
CA:FALSE
Authority Information Access:
OCSP — URI:http://rapidssl-ocsp.geotrust.com
CA Issuers — URI:http://rapidssl-aia.geotrust.com/rapidssl.crt
X509v3 Certificate Policies:
Policy: 2.16.840.1.113733.1.7.54
CPS: geotrust.com
Signature Algorithm: sha1WithRSAEncryption
<skip>
-----BEGIN CERTIFICATE-----
<skip>
-----END CERTIFICATE----- -
@Avatar, openssl verify RapidSSL_CA_bundle.pem server.crt
RapidSSL_CA_bundle.pem: OK
server.crt: serialNumber = M8dtwj024yaUP9af6lR04qMCxUNE5eTn, OU = GT77387686, OU = See www.rapidssl.com/resources/cps (c)12, OU = Domain Control Validated — RapidSSL(R), CN = *.st65.ru
error 20 at 0 depth lookup:unable to get local issuer certificate -
@StraNNicK, Ну, SKI-AKI совпадают, ок вроде. Залей куданить эти два сертификата, позырю
-
@StraNNicK, Надо просто объяснить openssl что это цепочка, а не два разных сертификата. -untrusted RapidSSL_CA_bundle.pem server.crt кажется. Скинь вобщем, я позырю
-
-
@Avatar,
cat > /etc/ssl/certs/2c543cd1.0
-----BEGIN CERTIFICATE-----
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
-----END CERTIFICATE----- -
@StraNNicK, Я просто затупил и не заметил, что твой бандл без Equifax CA. А у тебя этого сертификата походу нету вообще
-
@Avatar, Японский бог. Equifax это другой серт >_<
cat /etc/ssl/certs/578d5c04.0
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
-----END CERTIFICATE----- -
@StraNNicK, Я вообще щас на ночь глядя не могу понять что за херня происходит. Вобщем у меня в трастед сертификатах те два что я тебе запостил. В бандле оба сертификата подписаны хрен знает кем. Точнее — 1й эфимаксом (578d5c04.0), второй геотрастом (2c543cd1.0). Твой сертификат подписан вторым. Причем, Authority Key Identifier совпадает с 2c543cd1.0 и с тем который первый. А вот CN — нет (% Такое ощущение, что они одно физическое лицо (%
-
@StraNNicK, если у тебя есть вилдкард, выпущенный цепочкой ЦА, и хочется, что бы он нормально валидировался внешним клиентом, на сервере, на котором установлен этот вилдкард в трастед-рут должен быть только сертификат корневого ЦА.
всю цепочку туда сваливать не нужно. если сильно хочется, можно добавить сертификаты промежуточных ЦА в интермедиате хранилище, но при валидации клиент сам цепочку построит./41 · Reply -
@Dant, с этим разобрался, щас бьюсь со следующим.
Есть вилдкард сертификат (и ключ к нему). Задача: насоздавать пользовательских сертификатов, подписанных вилдкардом.
Создаваться-то они создаются, но:
openssl verify -CAfile certs/server.pem certs/mail.crt
certs/mail.crt: C = RU, ST = Sakhalin, L = Yuzhno-Sakhalinsk, O = ABVGD Ltd, OU = IT, CN = mail.abvgd.ru
error 20 at 0 depth lookup:unable to get local issuer certificate
Какого чорта оно не видит локального издателя — пока не вкурил -
@StraNNicK, ну видишь, я широко не использую опенссл. поэтому сходу ничего не подскажу. вилдкард используется только для паблик-сервисов публикации в ТМГ, а пользовательская аутентификация вся делается сертификатами, выпущенными внутренней изолированной от внешнего мира инфраструктурой 2008R2 PKI : ))
-
@StraNNicK,
Задача: насоздавать пользовательских
сертификатов, подписанных вилдкардом.
Ты хочешь подписывать сертификаты своим выданным? Это невозможно :] -
@StraNNicK, ну еба. А как ты себе это представляешь? Щас ты нахуячишь сертификатов для gmail.com, и будешь крутым MitM'ером. В сертификате должен быть полиси CA для таких дел :]
-
@Avatar,
openssl x509 -noout -text -in b1.pem | grep -A 1 Key\ Usage
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
openssl x509 -noout -text -in server.crt | grep -A 1 Key\ Usage
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
Почувствуй разницу :D -
@StraNNicK, ох блин. таки-да : ) я как-то нераспарсил чего тебе хочется. для выпуска своих сертификатов конечно-же нужен сертификат CA, а у тебя просто вилдкард для Client/Server Auth : )
есть офуенная книжка Brain Komar — Windows Server 2008 PKI and Certificate Security. Она про венду, конечно, но работать с любым PKI без изучения подобного талмуда сложно...