URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 1568
[ Назад ]

Исходное сообщение
"Клиентский сертификат + openSSL"

Отправлено Tony , 30-Авг-04 22:21 
Если не трудно, подтолкните в правильном направлении.

Есть экспортированный из msie сертификат (DER).
Хочу использовать его как клиентский сертификат.

1. конвертирую в PEM

openssl x509 -inform DER -in test.cer -addtrust clientAuth -out test.pem -outform PEM

2. Пытаюсь с ним коннектиться к серверу:

openssl s_client -connect www.site.ru:443 -cert 5.pem

получаю

49215:error:0906D06C:PEM routines:PEM_read_bio:no start
line:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/pem/pem_lib.c:663:Expecting: CERTIFICATE
49215:error:140AD009:SSL routines:SSL_CTX_use_certificate_file:missing asn1
eos:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/ssl_rsa.c:534:

Пробовал стирать TRUSTED (-----BEGIN TRUSTED CERTIFICATE-----)
пишет expecting ANY PRIVATE KEY.

Очевидно я чего-то сильно не понимаю. Нужно ли еще как-то
подписывать/конвертировать файл сертификата, экспортированный из MSIE
перед использованием?


Содержание

Сообщения в этом обсуждении
"Клиентский сертификат + openSSL"
Отправлено bass , 31-Авг-04 06:04 
>Если не трудно, подтолкните в правильном направлении.
>
>Есть экспортированный из msie сертификат (DER).
>Хочу использовать его как клиентский сертификат.
>
>1. конвертирую в PEM
>
>openssl x509 -inform DER -in test.cer -addtrust clientAuth -out test.pem -outform PEM

-addtrust clientAuth а без этого?
>
>
>2. Пытаюсь с ним коннектиться к серверу:
>
>openssl s_client -connect www.site.ru:443 -cert 5.pem
>
>получаю
>
>49215:error:0906D06C:PEM routines:PEM_read_bio:no start
>line:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/pem/pem_lib.c:663:Expecting: CERTIFICATE
>49215:error:140AD009:SSL routines:SSL_CTX_use_certificate_file:missing asn1
>eos:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/ssl_rsa.c:534:
>

что показывает openssl s_client -connect www.site.ru:443 -state?

>Пробовал стирать TRUSTED (-----BEGIN TRUSTED CERTIFICATE-----)
>пишет expecting ANY PRIVATE KEY.
>

это делать не стоит.


>Очевидно я чего-то сильно не понимаю. Нужно ли еще как-то
>подписывать/конвертировать файл сертификата, экспортированный из MSIE
>перед использованием?
рекомендую почитать: http://samag.ru/img/uploaded/2003/1/l1.pdf
"теория и практика openssl"


какой имеено сертификат? der x509 или der base64? они оба в винде называются cer. кроме того, некоторые сертификаты (например для банк-клиентов) дополняются некими значениями.

проще поступить так: в винде во вкладках безопасности найти этот сертификат и импортировать в der x509, а далее стандартно.


"Клиентский сертификат + openSSL"
Отправлено Tony , 31-Авг-04 09:53 

>-addtrust clientAuth а без этого?

то же самое

>что показывает openssl s_client -connect www.site.ru:443 -state?

no peer certificate

>
>>Пробовал стирать TRUSTED (-----BEGIN TRUSTED CERTIFICATE-----)
>>пишет expecting ANY PRIVATE KEY.
>>
>
>это делать не стоит.

понял :)

>рекомендую почитать: http://samag.ru/img/uploaded/2003/1/l1.pdf
>"теория и практика openssl"
>

cпасибо, гляну

>какой имеено сертификат? der x509 или der base64? они оба в винде
>называются cer. кроме того, некоторые сертификаты (например для банк-клиентов) дополняются некими
>значениями.

x509


>проще поступить так: в винде во вкладках безопасности найти этот сертификат и
>импортировать в der x509, а далее стандартно.

в том-то и дело, что мне его из винды надо экспортировать, а не
импортировать. Далее использовать для ссл'ного клиента.



"Клиентский сертификат + openSSL"
Отправлено Tony , 31-Авг-04 11:07 
Попробовал еще раз:

1. Экспорт из эксплорера в виде DER X509 (в файл 1.der)

2. Конвертирую в PEM (openssl x509 -in 1.der -out 1.pem -inform DER -outform PEM)

3. Тестирую коннект

openssl s_client -connect www.site.ru:443 -state -prexit
CONNECTED(00000003)
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
23163:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/s23_lib.c:228:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 124 bytes
---
New, (NONE), Cipher is (NONE)
---

4. Пытаюсь подсунуть файл сертификата:

openssl s_client -connect www.site.ru:443 -cert 1.pem
unable to get private key from '1.pem'
22987:error:0906D06C:PEM routines:PEM_read_bio:no start line:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/pem/pem_lib.c:663:Expecting: ANY PRIVATE KEY
22987:error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:missing asn1 eos:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/ssl_rsa.c:707:



"Клиентский сертификат + openSSL"
Отправлено bass , 01-Сен-04 05:41 
>Попробовал еще раз:
>
>1. Экспорт из эксплорера в виде DER X509 (в файл 1.der)
>
>2. Конвертирую в PEM (openssl x509 -in 1.der -out 1.pem -inform DER
>-outform PEM)
>
>3. Тестирую коннект
>
>openssl s_client -connect www.site.ru:443 -state -prexit
>CONNECTED(00000003)
>SSL_connect:before/connect initialization
>SSL_connect:SSLv2/v3 write client hello A
>23163:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/s23_lib.c:228:
>---
>no peer certificate available
>---
!!!!!

сайт, с которым вы собираетесь устанавливать доверенные отношения при помощи сертификатов, не имеет своего сертификата. дальнейшие попытки бесполезны.

!!!!!
>No client certificate CA names sent
>---
>SSL handshake has read 0 bytes and written 124 bytes
>---
>New, (NONE), Cipher is (NONE)
>---
>
>4. Пытаюсь подсунуть файл сертификата:
>
>openssl s_client -connect www.site.ru:443 -cert 1.pem
>unable to get private key from '1.pem'
>22987:error:0906D06C:PEM routines:PEM_read_bio:no start line:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/pem/pem_lib.c:663:Expecting: ANY PRIVATE KEY
>22987:error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:missing asn1 eos:/usr/src/secure/lib/libssl/../../../crypto/openssl/crypto/../ssl/ssl_rsa.c:707:
>
>


"Клиентский сертификат + openSSL"
Отправлено Xela , 03-Сен-04 10:44 
>сайт, с которым вы собираетесь устанавливать доверенные отношения при помощи сертификатов, не
>имеет своего сертификата. дальнейшие попытки бесполезны.

Не совсем так. Клиент не может проверить подлинность сертификата сервера.
Надо s_client-у указать CA сертификат(ы) по которым он сможет проверить подлиность сертификата сервера и выстроить client certificate chain.
Ключи -CAfile -CApath