[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: