Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

curl и самоподписанные сертификаты

1,622 views
Skip to first unread message

Ed

unread,
Dec 15, 2010, 1:10:02 PM12/15/10
to
есть чужой сайт с самоподписанным сертификатом, скажем
https://billing.ptcomm.ru

curl на него ругается (что и ожидалось):
edo@work:/tmp$ curl https://billing.ptcomm.ru
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate
verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). The default
bundle is named curl-ca-bundle.crt; you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.


иду на http://curl.haxx.se/docs/sslcerts.html
по написанным там иструкциям получаю сертификат того сайта, предлагаю
его curl'у в качестве cacert - ничего не меняется:
edo@work:/tmp$ curl --cacert ptcomm.pem https://billing.ptcomm.ru
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate
verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
....

у меня есть подозрение, что дело в том, что это не корневой сертификат:
edo@work:/tmp$ openssl x509 -inform PEM -in ptcomm.pem -text|grep 'CA:'
CA:FALSE

как побороть? (про '-k' знаю, неинтересно)


ps: меня смущает, что с --cacert остальные сайты работают, например:
edo@work:/tmp$ curl --cacert ptcomm.pem https://gmail.com
<HTML><HEAD><meta http-equiv="content-type"
content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://mail.google.com/mail/">here</A>.
</BODY></HTML>

я думал указывая нужный мне корневой сертификат я говорю curl'у не
доверять больше никому.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Archive: http://lists.debian.org/4D08FE13...@yandex.ru

Nicholas

unread,
Dec 16, 2010, 8:30:02 AM12/16/10
to
On 15.12.2010 17:42, Ed wrote:
> The default
> bundle is named curl-ca-bundle.crt; you can specify an alternate file
> using the --cacert option.

> edo@work:/tmp$ openssl x509 -inform PEM -in ptcomm.pem -text|grep 'CA:'
> CA:FALSE

C curl не работал, но судя вашему по письму, ptcomm.pem не должен быть
CA, но должен быть
подписанным с помощью того же CA ключа что и корневой сертификат
"curl-ca-bundle.crt" или указанный в --cacert option.

--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/ied472$1pn$1...@dough.gmane.org

Nicholas

unread,
Dec 16, 2010, 8:50:01 AM12/16/10
to
On 15.12.2010 17:42, Ed wrote:
> есть чужой сайт с самоподписанным сертификатом, ...

> curl на него ругается (что и ожидалось):

Любой СА сертификат - самоподписанный, потому то он и СА.


Купленный за $k и сделанный командой ssl ничем не отличаются, кроме того
что купленный уже будет стоять в мозилле и ie пользователя,
а свой СА надо будет каждому пользователю установить самому, и тогда
сертификаты того же дерева будут приниматься молча.


--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/ied4rk$54v$1...@dough.gmane.org

Ed

unread,
Dec 16, 2010, 9:00:01 AM12/16/10
to
Victor Wagner wrote:
> Другой вопрос, что самоподписанный сертификат, НЕ СОДЕРЖАЩИЙ расширения
> basicConstraints считается сертификатом CA, а рассматриваемый сертификат
> содержал это расширение со значеним CA:FALSE.

так что делать? ;)
можно как-то сказать curl'у - "этому сертификату я верю"?


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0A1B30...@yandex.ru

Ed

unread,
Dec 16, 2010, 9:10:02 AM12/16/10
to
Victor Wagner wrote:
>> Купленный за $k и сделанный командой ssl ничем не отличаются, кроме того
>
> Это если уметь "командой ssl" пользоваться. По умолчанию скрипты,
> которые идут в комплекте OpenSSL делают допотопные сертификаты X509v1,
> кладут email в Distinguisted Name, что deprecated (но для того чтобы
> положить его в правильное место - расширение subjectAltName нужно делать
> сертификат X509v3) и не умеют русских букв в полях Distinguished Name.

а чем это плохо?
с первого взгляда это скорее косметические недостатки.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0A1C0E...@yandex.ru

Alex Kuklin

unread,
Dec 16, 2010, 9:20:02 AM12/16/10
to
On 16.12.2010 15:59, Ed wrote:
> Victor Wagner wrote:
>> Другой вопрос, что самоподписанный сертификат, НЕ СОДЕРЖАЩИЙ расширения
>> basicConstraints считается сертификатом CA, а рассматриваемый сертификат
>> содержал это расширение со значеним CA:FALSE.
>
> так что делать? ;)
Почитать мануал?

> можно как-то сказать curl'у - "этому сертификату я верю"?

1) (правильный способ) подключть сертификат подписавшено ca
--cacert <CA certificate>
(SSL) Tells curl to use the specified certificate file to verify the
peer. The file may contain multiple CA certificates. The certificate(s)
must be in PEM format. Normally curl is built to use a default
file for this, so this option is typically used to alter that default file.

curl recognizes the environment variable named 'CURL_CA_BUNDLE' if it is
set, and uses the given path as a path to a CA cert bundle. This option
overrides that variable.

The windows version of curl will automatically look for a CA certs file
named ´curl-ca-bundle.crt´, either in the same directory as curl.exe, or
in the Current Working Directory, or in any folder along
your PATH.

If curl is built against the NSS SSL library then this option tells curl
the nickname of the CA certificate to use within the NSS database
defined by the environment variable SSL_DIR (or by default
/etc/pki/nssdb). If the NSS PEM PKCS#11 module (libnsspem.so) is
available then PEM files may be loaded.

If this option is used several times, the last one will be used.

--capath <CA certificate directory>
(SSL) Tells curl to use the specified certificate directory to verify
the peer. The certificates must be in PEM format, and the directory must
have been processed using the c_rehash utility supplied with
openssl. Using --capath can allow curl to make SSL-connections much more
efficiently than using --cacert if the --cacert file contains many CA
certificates.

If this option is used several times, the last one will be used.


2) (неправильный способ) игнорировать ошибки ssl

-k/--insecure
(SSL) This option explicitly allows curl to perform "insecure" SSL
connections and transfers. All SSL connections are attempted to be made
secure by using the CA certificate bundle installed by default.
This makes all connections considered "insecure" fail unless
-k/--insecure is used.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0A1DDD...@kuklin.ru

Alex Kuklin

unread,
Dec 16, 2010, 9:30:02 AM12/16/10
to
On 16.12.2010 16:22, Ed wrote:

> Alex Kuklin wrote:
>>> так что делать? ;)
>> Почитать мануал?
>
> с этого и начал ;)

>
>>> можно как-то сказать curl'у - "этому сертификату я верю"?
>>
>> 1) (правильный способ) подключть сертификат подписавшено ca
>> --cacert <CA certificate>
>
> в данном случае такого CA, как я понимаю, нет.
В данном случае сертификат CA совпадает с сертификатом сервера, т.к. он
самоподписанный.

>
>> 2) (неправильный способ) игнорировать ошибки ssl
>>
>> -k/--insecure
>

> про этот способ я уже писал - не нравится.
>
>
> так всё-таки можно сказать "я верю этому сертификату?"
>
> ps: на curl'е свет клином не сошёлся, хочется понять, как оно работает
> в принципе.
Как работает что? x509?


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0A21A3...@kuklin.ru

Ed

unread,
Dec 16, 2010, 9:40:02 AM12/16/10
to
Alex Kuklin wrote:
>>>> можно как-то сказать curl'у - "этому сертификату я верю"?
>>> 1) (правильный способ) подключть сертификат подписавшено ca
>>> --cacert <CA certificate>
>> в данном случае такого CA, как я понимаю, нет.
> В данном случае сертификат CA совпадает с сертификатом сервера, т.к. он
> самоподписанный.

опять же - указать этот сертификат в '--cacert' я пробовал - не помогло.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0A22DD...@yandex.ru

Alex Kuklin

unread,
Dec 16, 2010, 9:50:02 AM12/16/10
to
On 16.12.2010 16:42, Artem Chuprina wrote:
>>>>> так что делать? ;)
>>>>>
>>>> Почитать мануал?
>>>>
>>> с этого и начал ;)
>>>
>>>
>>>>> можно как-то сказать curl'у - "этому сертификату я верю"?
>>>>>
>>>> 1) (правильный способ) подключть сертификат подписавшено ca
>>>> --cacert <CA certificate>
>>>>
>>> в данном случае такого CA, как я понимаю, нет.
>>>
>> В данном случае сертификат CA совпадает с сертификатом сервера, т.к. он
>> самоподписанный.
>>
> Алекс, ты, конечно, умный, но в данном случае не очень образованный либо очень
> невнимательный. Сертификат, в котором сказано CA:FALSE, не является
> сертификатом CA, будь он хоть шесть раз самоподписанный. И это правильно.
> Верно и обратное, если в нем сказано CA:TRUE, то он сертификат CA, даже если
> не корневого.
>
> Это вообще-то довольно слабо связанные вещи.
>
Да, я как-то прогнал. Признаю.
Но подписан-то он тем же ключом, и по логике добавление публичного ключа
в доверенные должно быть достаточно.
А механизма включения определенного сертификата (по отпечатку) в список
доверенных curl, похоже, не имеет.
Впрочем, мне сложно понять, нафига самоподписанные сертификаты без CA,
когда можно за 10 минут поднять свой CA.

--
Alex


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0A268C...@kuklin.ru

Nicholas

unread,
Dec 16, 2010, 10:50:01 AM12/16/10
to
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=x...@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=x...@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=x...@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=x...@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=x...@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=x...@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


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/iedcat$ddt$1...@dough.gmane.org

Nicholas

unread,
Dec 16, 2010, 11:00:02 AM12/16/10
to
On 16.12.2010 13:59, Ed wrote:
> Victor Wagner wrote:
>> О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
>> basicConstraints О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ CA, О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ CA:FALSE.
>
> О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫? ;)
> О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ curl'О©╫ - "О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫"?
>
>

О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫:
curl-ca-bundle.crt
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, umho.
О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ "О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫"
"О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫".
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.


О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ opnenvpn О©╫О©╫О©╫.


----------------------------------------------------
О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫:

О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ CA (О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫), О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫, О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (О©╫О©╫О©╫)
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.
x509 - О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
PKCS#10 (О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ openssl О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ )
PKCS#12 (О©╫О©╫О©╫ pfx) - О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ m$.

DER - О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ DER-О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ base64, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫ DER
О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ DER О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ M$ (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ .cer). О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫.
keytool -list -v -keystore keystore.jks -storepass changeit
(О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ jks)
openssl rsa -noout -text -in client01.key (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫)
openssl req -noout -text -in client01.csr (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫)
openssl x509 -in file(ca).crt -text (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫)
openssl pkcs12 -in file.p12 -info -nodes > file
openssl s_client -connect server:port -showcerts # О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫,
О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ ssl-enabled О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫

openssl x509 -inform PEM -in cert.pem -outform DER -out cert.cer
(О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ pem О©╫ der)
openssl x509 -inform DER -in cert.cer -outform PEM -out cert.pem
(О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ der О©╫ pem)
openssl pkcs8 - О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ pkcs8 О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫

openssl pkcs12 -export -in client.pem -inkey client-key.pem -out
client.p12 -name "Client certificate from our organization"
(О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ pem О©╫ pkcs12)
openssl pkcs12 -in client.p12 -out client.pem (О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ pkcs12 О©╫ pem)

openssl genrsa -out ng_ca_key.pem -rand randfile -des3 4096 (О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫)
openssl req -new -x509 -key ca_key.pem -out ca_cert.pem -days 3650 (
-config cfg) (О©╫О©╫О©╫О©╫О©╫О©╫О©╫ self-signed О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫)

--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/iedcod$evd$1...@dough.gmane.org

Victor Wagner

unread,
Dec 16, 2010, 11:10:03 AM12/16/10
to
On 2010.12.16 at 17:02:54 +0300, Ed wrote:

> Victor Wagner wrote:
>>> Купленный за $k и сделанный командой ssl ничем не отличаются, кроме
>>> того
>>
>> Это если уметь "командой ssl" пользоваться. По умолчанию скрипты,
>> которые идут в комплекте OpenSSL делают допотопные сертификаты X509v1,
>> кладут email в Distinguisted Name, что deprecated (но для того чтобы
>> положить его в правильное место - расширение subjectAltName нужно делать
>> сертификат X509v3) и не умеют русских букв в полях Distinguished Name.
>
> а чем это плохо?
> с первого взгляда это скорее косметические недостатки.

Ну не то, чтобы это было невыносимо плохо, но вопрос был "а чем
отличаются", а не "а чем хуже".

То что правильно сделанный X509v3 самоподписанный сертификат
в XP установится в правильный certificate store автоматически - уже
большой плюс, если у вас есть пользователи, использующие XP.

То что в X509v3 можно прописать crlDistrbutionPoints и
AuthorityInfoAccess - тоже плюс.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/20101216160...@wagner.pp.ru

Artem Chuprina

unread,
Dec 16, 2010, 1:20:01 PM12/16/10
to
> Да, я как-то прогнал. Признаю.
> Но подписан-то он тем же ключом, и по логике добавление публичного ключа
> в доверенные должно быть достаточно.

Фигня в том, что в доверенные добавляется не ключ, а сертификат. Вместе со
своей служебной информацией. А ключ cacert (ну, там его аргумент тупо
передается в соответствующий вызов libcrypto) включает проверку с таким вот
списком сертификатов, которые должны быть сертификатами CA. Оно, помимо
подписей, проверяет еще и корректность структуры PKI, построенной от
сертификата сервера к корневому, и эта корректность подразумевает, помимо
всего прочего, что сертификат сервера нифига не самоподписанный, а сертификат,
на котором он подписан и далее по цепочке до корневого - он таки да,
сертификат CA, т.е. с правом подписи сертификатов. Если я правильно ошибаюсь
(в случае чего Витус поправит) libcrypto можно попросить верить конкретному
сертификату сервера, но это другой вызов, потому что это совершенно другая
проверка.

> А механизма включения определенного сертификата (по отпечатку) в список
> доверенных curl, похоже, не имеет.
> Впрочем, мне сложно понять, нафига самоподписанные сертификаты без CA,
> когда можно за 10 минут поднять свой CA.

Для этого надо сначала потратить несколько хотя бы часов на изучение матчасти.
Чтобы понимать, что делаешь, а не тупо содрать пример из интернетов. После
чего, впрочем, все равно дерется пример из интернетов :-), но уже правильный
пример.

Интересно, он там не на Snake Oil ли, часом, выписан, тот доверенный
сертификат?.. Ну, доменное имя там, понятно, должно быть правильным, иначе
браузер обидится, а остальное?

--
... и углупился в свои мысли
Кнышев


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/87lj3pljq7.wl%r...@ran.pp.ru

Alex Kuklin

unread,
Dec 16, 2010, 2:50:01 PM12/16/10
to
On 16.12.2010 19:18, Artem Chuprina wrote:
>> Да, я как-то прогнал. Признаю.
>> Но подписан-то он тем же ключом, и по логике добавление публичного ключа
>> в доверенные должно быть достаточно.
>>
> Фигня в том, что в доверенные добавляется не ключ, а сертификат. Вместе со
> своей служебной информацией. А ключ cacert (ну, там его аргумент тупо
> передается в соответствующий вызов libcrypto) включает проверку с таким вот
> списком сертификатов, которые должны быть сертификатами CA. Оно, помимо
> подписей, проверяет еще и корректность структуры PKI, построенной от
> сертификата сервера к корневому, и эта корректность подразумевает, помимо
> всего прочего, что сертификат сервера нифига не самоподписанный, а сертификат,
> на котором он подписан и далее по цепочке до корневого - он таки да,
> сертификат CA, т.е. с правом подписи сертификатов. Если я правильно ошибаюсь
> (в случае чего Витус поправит) libcrypto можно попросить верить конкретному
> сертификату сервера, но это другой вызов, потому что это совершенно другая
> проверка.
>
>
>> А механизма включения определенного сертификата (по отпечатку) в список
>> доверенных curl, похоже, не имеет.
>> Впрочем, мне сложно понять, нафига самоподписанные сертификаты без CA,
>> когда можно за 10 минут поднять свой CA.
>>
> Для этого надо сначала потратить несколько хотя бы часов на изучение матчасти.
> Чтобы понимать, что делаешь, а не тупо содрать пример из интернетов. После
> чего, впрочем, все равно дерется пример из интернетов :-), но уже правильный
> пример.
>
Чем плох easy-rsa-2 из openvpn?

> Интересно, он там не на Snake Oil ли, часом, выписан, тот доверенный
> сертификат?.. Ну, доменное имя там, понятно, должно быть правильным, иначе
> браузер обидится, а остальное?
>

А какая разница, на что именно обижается браузер, с практической точки
зрения?

--
Alex

--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0A6C43...@kuklin.ru

Artem Chuprina

unread,
Dec 16, 2010, 3:40:03 PM12/16/10
to
> >> Впрочем, мне сложно понять, нафига самоподписанные сертификаты без CA,
> >> когда можно за 10 минут поднять свой CA.
> >>
> > Для этого надо сначала потратить несколько хотя бы часов на изучение
> > матчасти. Чтобы понимать, что делаешь, а не тупо содрать пример из
> > интернетов. После чего, впрочем, все равно дерется пример из интернетов
> > :-), но уже правильный пример.
> >
> Чем плох easy-rsa-2 из openvpn?

Во-вторых, тем, что RSA. А в-первых, тем, что о его существовании как минимум
знать надо. К тому времени, как мне о нем рассказал криптокомовский админ
(которого я потом учил этой хренью пользоваться :-)), я сделал уже существенно
не один CA.

> > Интересно, он там не на Snake Oil ли, часом, выписан, тот доверенный
> > сертификат?.. Ну, доменное имя там, понятно, должно быть правильным, иначе
> > браузер обидится, а остальное?
> >
> А какая разница, на что именно обижается браузер, с практической точки
> зрения?

Он на что-то обижается слегка, а на что-то сильно. curl - это не браузер.

--
Пришел в гости математик, почитать новую рукопись. Вычитал из нее трех
героев напрочь, и ушел.
Gimli on #arda


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/87hbedlarj.wl%r...@ran.pp.ru

Ed

unread,
Dec 17, 2010, 12:20:02 PM12/17/10
to
Ed wrote:
> ps: меня смущает, что с --cacert остальные сайты работают, например:
.....

> я думал указывая нужный мне корневой сертификат я говорю curl'у не
> доверять больше никому.

разобрался.
если указать --cacert, то curl "согласен" на указанный CA-сертификат И
на сертификаты из /etc/ssl/certs.

если указать --capath, то curl будет доверять только сертификатам из
указанной директории.


--
To UNSUBSCRIBE, email to debian-russ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Archive: http://lists.debian.org/4D0B99E6...@yandex.ru

0 new messages