Mam zaszczyt obsługiwać ~ 5 raportów CSR SSL tygodniowo, sprawdzając ich ważność przed przekazaniem ich do naszego CA w celu podjęcia działań. Używam OpenSSL na maszynie Ubuntu, aby sprawdzić, czy są one poprawne, testując takie rzeczy, jak poprawna nazwa jednostki organizacyjnej, rozsądna CN, rozmiar klucza> = 2048 bitów i tak dalej, ponieważ nasze żądania są czasami nieprawidłowe.
Innego dnia otrzymałem prośbę o odnowienie z maszyny IIS7. Nie mogę w ogóle wymyślić, jak to przeczytać, używając OpenSSL. Jest ważny, ponieważ mój CA go zaakceptował ...
„plik (1)” mówi, że jest to „tekst żądania podpisania certyfikatu bezpieczeństwa RFC1421”, co oznacza około 50% CSR, które tu mam (pozostałe to „żądanie certyfikatu PEM”).
$ head iis7rcsr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIQsQYJKoZIhvcNAQcCoIIQojCCEJ4CAQExCzAJBgUrDgMCGgUAMIIJegYJKoZI
hvcNAQcBoIIJawSCCWcwggljMIIIzAIBADCB2zELMAkGA1UEBhMCTloxDTALBgNV
BBEMBDkwNTQxDjAMBgNVBAgMBU90YWdvMRAwDgYDVQQHDAdEdW5lZGluMRwwGgYD
...
...
openssl req
, który czyta CSR (PKCS # 10) nie rozumie go ...
$ openssl req -in iis7rcsr -text
unable to load X509 request
5156:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1316:
5156:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509_REQ_INFO
5156:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:748:Field=req_info, Type=X509_REQ
5156:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:
Ten artykuł Andreasa Kleina na blogach MSDN sugeruje, że CSR odnawiania IIS7 to kontener PKCS # 7 z CSR i podpisem opartym na bieżącym certyfikacie ... ale nadal nie mogę go przeczytać.
$ openssl pkcs7 -in iis7rcsr -text
unable to load PKCS7 object
6581:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: PKCS7
Mogę użyć „openssl base64” do zdekodowania pliku, aw wynikowym pliku binarnym widzę ciągi, które wyglądają jak CSR, oraz niektóre odwołania do urzędu certyfikacji, które musiały pochodzić z podpisu opartego na starym certyfikacie. Idea kontenera (CSR, podpis) brzmi więc realistycznie.
Ale nadal nie mogę znaleźć sposobu na odczytanie CSR, który tam jest! Próbowałem już wielu rzeczy, nie wymienię tutaj szczegółów, ale oto najważniejsze różnice, które wypróbowałem: pkcs12 pkcs7 PEM DER rex x509 sprawdź ...
Niestety nie mogę tutaj opublikować samego CSR. Czy ktoś może mi pomóc wymyślić sposób odczytu / weryfikacji tego pliku?
openssl asn1parse
mogę odczytać żądanie, a stamtąd mogę wyodrębnić normalny CSR. Nie potrafię jeszcze odpowiedzieć samemu (rozwiązałem to zbyt szybko), więc zaktualizuję pytanie o rozwiązanie, a następnie naprawię je jutro :-)