Re: curl и самоподписанные сертификаты
On 16.12.2010 13:55, Victor Wagner wrote:
On 2010.12.16 at 08:38:19 +0000, Nicholas wrote:
On 15.12.2010 17:42, Ed wrote:
есть чужой сайт с самоподписанным сертификатом, ...
curl на него ругается (что и ожидалось):
Любой СА сертификат - самоподписанный, потому то он и СА.
Это неправда. Бывают secondary CA, подписанные на primary CA.
Вы правы, уточню:
"корневой CA" - всегда самоподписанный, это и определяет то что он
"корень".
Какая бы крутая контора и за какие бы деньги не продавала свои
сертификаты - основаны они на самоподписанном, который долго
рекламировали и добавили в пакет инсталяции с броузером.
Делегировать право подписывать по цепочке, но есть быть CA true - да
таких может быть много, в каждом дереве.
Причем начиная с Vista скачанный с Web сертификат CA пытается поставится
в store intermediate CA, где должны стоять сертификаты промежуточных CA,
Если у вас в броузере есть корневой, а у сайта 5 уровня, то что бы не
ругался броузер, надо по очереди скормить ему 2,3,4 уровни редиректами,
и потом давать пятый.
Вот таким скриптом их можно создать, для экпереимантов.
#!/bin/sh
# (создать приватный ключ "layer 0")
#openssl genrsa -out layer_0_key_ca.pem 4096 #-des3 4096
# (создать self-signed серт "layer 0" на основе приватного)
openssl req -new -x509 -key layer_0_key_ca.pem -out layer_0_cert_ca.crt
-days 3650 -subj /C=XX/ST=XX/L=XXX/O=XX/OU=xx/CN=Layer\ 0/email=xx@xx.net
-config ssl.conf -extensions v3_ca_self
#новый глюч "layer 1"
#openssl genrsa -out layer_1_key.pem 4096
#запрос на сертификацию
openssl req -new -key layer_1_key.pem -out layer_1_req.csr -subj
/C=XX/ST=XX/L=XXX/O=XX/OU=xx/CN=Layer\ 1/email=xx@xx.net
#подписать запрос на серт "layer 1"
openssl x509 -req -in layer_1_req.csr -CA layer_0_cert_ca.crt -CAkey
layer_0_key_ca.pem -CAcreateserial -out layer_1_cert.crt -days 3650\
-extfile ssl.conf -extensions v3_ca
#новый глюч "layer 2"
#openssl genrsa -out layer_2_key.pem 4096
#запрос на сертификацию
openssl req -new -key layer_2_key.pem -out layer_2_req.csr -subj
/C=XX/ST=XX/L=XXX/O=XX/OU=xx/CN=Layer\ 2/email=xx@xx.net
#подписать запрос на серт "layer 2"
openssl x509 -req -in layer_2_req.csr -CA layer_1_cert.crt -CAkey
layer_1_key.pem -CAcreateserial -out layer_2_cert.crt -days 3650\
-extfile ssl.conf -extensions v3_ca
#новый глюч "layer 3"
#openssl genrsa -out layer_3_key.pem 4096
#запрос на сертификацию
openssl req -new -key layer_3_key.pem -out layer_3_req.csr -subj
/C=XX/ST=XX/L=XXX/O=XX/OU=xx/CN=Layer\ 3/email=xx@xx.net
#подписать запрос на серт "layer 3"
openssl x509 -req -in layer_3_req.csr -CA layer_2_cert.crt -CAkey
layer_2_key.pem -CAcreateserial -out layer_3_cert.crt -days 3650\
-extfile ssl.conf -extensions v3_ca
#новый глюч "layer 4"
#openssl genrsa -out layer_4_key.pem 4096
#запрос на сертификацию
openssl req -new -key layer_4_key.pem -out layer_4_req.csr -subj
/C=XX/ST=XX/L=XXX/O=XX/OU=xx/CN=Layer\ 4/email=xx@xx.net
#подписать запрос на серт "layer 4"
openssl x509 -req -in layer_4_req.csr -CA layer_3_cert.crt -CAkey
layer_3_key.pem -CAcreateserial -out layer_4_cert.crt -days 3650\
-extfile ssl.conf -extensions v3_ca
#новый глюч "layer 5"
#openssl genrsa -out layer_5_key.pem 4096
#запрос на сертификацию
openssl req -new -key layer_5_key.pem -out layer_5_req.csr -subj
/C=XX/ST=XX/L=XXX/O=XX/OU=xx/CN=Layer\ 5/email=xx@xx.net
#подписать запрос на серт "layer 5"
openssl x509 -req -in layer_5_req.csr -CA layer_4_cert.crt -CAkey
layer_4_key.pem -CAcreateserial -out layer_5_cert.crt -days 3650\
-extfile ssl.conf -extensions v3_ca
--
Sincerely,
Nicholas
Reply to: