[Eppnicbr] Certificado SSL
Cesar Fazan
listas at itm.net.br
Wed Jul 19 22:34:02 BRT 2006
Olá Hugo,
Eu havia feito uma tentativa parecida sem sucesso anteriormente.
Refiz novamente para descrever passo-a-passo.
O que é realmente estranho é que um teste de conexão com o servidor EPP
da EURid funciona sem problemas .. veja no final do e-mail. Apenas no
servidor do Registro.br continua acusando erro de handshake.
O shepp funciona normal aqui ... mais o openssl apenas consegue conectar
se eu especificar (-cert client.pem), a mesma coisa com php5 ... preciso
sempre especificar onde esta o client.pem o que até onde eu sei torna o uso
incompativel com php4 e perl e talvez com outras linguagens onde não se pode
definir o certificado a ser utilizado para conexão.
O servidor utilizado para testes é um FreeBSD 5.4-RELEASE-p4, segue
abaixo o resultado dos testes:
(root)(~/registro.br) openssl verify client.pem
client.pem: /C=BR/ST=Sao Paulo/L=Sao Paulo/O=Registro.br/OU=shepp/CN=0
error 20 at 0 depth lookup:unable to get local issuer certificate
(root)(~/registro.br) openssl x509 -in root.pem -text >
/etc/ssl/certs/registrobr.pem
(root)(~/registro.br) cd /etc/ssl/certs &&
/usr/src/crypto/openssl/tools/c_rehash .
Doing .
registrobr.pem => ddfcc2df.0
(root)(/etc/ssl/certs) cd ~/registro.br/
(root)(~/registro.br) openssl verify client.pem
client.pem: OK
(root)(~/registro.br) openssl s_client -tls1 -connect beta.registro.br:700
CONNECTED(00000003)
depth=1 /C=BR/ST=Sao Paulo/L=Sao
Paulo/O=Registro.br/OU=EPP/CN=registro.br/emailAddress=epp at registro.br
verify error:num=19:self signed certificate in certificate chain
verify return:0
49946:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake
failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/s3_pkt.c:1052:SSL
alert number 40
49946:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake
failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/s3_pkt.c:529:
(root)(~/registro.br) openssl s_client -tls1 -connect
epp.registry.tryout.eu:33128
CONNECTED(00000003)
depth=1 /C=BE/ST= /L=Leuven/O=DNS BE/CN=DNS BE Root Certificate
Authority/emailAddress=certificate at dns.Be
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
0 s:/C=BE/ST=Unknown/L=Brussels/O=EURid/OU=EPP Server/CN=EURid vzw
i:/C=BE/ST= /L=Leuven/O=DNS BE/CN=DNS BE Root Certificate
Authority/emailAddress=certificate at dns.Be
[...]
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
SSL-Session:
Protocol : TLSv1
[...]
César
----- Original Message -----
From: "Hugo Koji Kobayashi" <koji at registro.br>
To: <eppnicbr at eng.registro.br>
Sent: Wednesday, July 19, 2006 7:11 PM
Subject: Re: [Eppnicbr] Certificado SSL
Cesar,
Tanto o certificado para testes como os certificados para produção são
assinados pelo certificado que se encontra no arquivo root.pem, o qual
é distribuído na libepp_nicbr.
Basta importar este certificado raiz (self-signed como outro
certificado raiz qualquer) na sua base de CA confiáveis. Via openssl
você importa isto pela seguinte interface:
http://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html
Não há previsão para utilização de certificados assinados por
terceiros.
Hugo
On Wed, Jul 19, 2006 at 11:48:55AM -0300, Cesar Fazan wrote:
> Depois de muito quebrar a cabeça tentando efetuar a conexão com o
> servidor EPP do Registro.br utilizando as linguagens perl e php, encontrei
> o
> erro acusando sobre o certificado ssl ser auto-assinado.
>
> O servidor EPP de produção também utiliza certificado auto-assinado?
> Isso irá mudar no futuro para uma maior compatibilidade?
>
> No php5 encontrei uma forma de conseguir conectar utilizando o arquivo
> client.pem encontrado na libepp_nicbr, porém sem sucesso com php4 e perl.
>
> Encontrei o erro após a execução do comando
> > openssl s_client -tls1 -crlf -connect beta.registro.br:700
>
> CONNECTED(00000003)
> depth=1 /C=BR/ST=Sao Paulo/L=Sao
> Paulo/O=Registro.br/OU=EPP/CN=registro.br/emailAddress=epp at registro.br
> verify error:num=19:self signed certificate in certificate chain
> verify return:0
> 46294:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake
> failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/s3_pkt.c:1052:SSL
> alert number 40
> 46294:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake
> failure:/usr/src/secure/lib/libssl/../../../crypto/openssl/ssl/s3_pkt.c:529:
>
>
> Quando eu peço para o openssl ler o certificado client.pem ele conecta
> sem problemas, mas isso não torna muito pratico o processo de criação das
> APIs.
>
> Testei conexões com outros servidores EPP como EURid, Centralnic sem
> nenhum problema já que os mesmos não utilizavam certificados
> auto-assinado.
>
> Abaixo o resultado do openssl lendo o client.pem
>
> > openssl s_client -tls1 -crlf -cert client.pem -connect
> > beta.registro.br:700
> CONNECTED(00000003)
> depth=1 /C=BR/ST=Sao Paulo/L=Sao
> Paulo/O=Registro.br/OU=EPP/CN=registro.br/emailAddress=epp at registro.br
> verify error:num=19:self signed certificate in certificate chain
> verify return:0
> ---
> Certificate chain
> 0 s:/C=BR/ST=Sao Paulo/L=Sao
> Paulo/O=Registro.br/OU=EPP/CN=beta.registro.br
> i:/C=BR/ST=Sao Paulo/L=Sao
> Paulo/O=Registro.br/OU=EPP/CN=registro.br/emailAddress=epp at registro.br
> 1 s:/C=BR/ST=Sao Paulo/L=Sao
> Paulo/O=Registro.br/OU=EPP/CN=registro.br/emailAddress=epp at registro.br
> i:/C=BR/ST=Sao Paulo/L=Sao
> Paulo/O=Registro.br/OU=EPP/CN=registro.br/emailAddress=epp at registro.br
> ---
> [...]
> New, TLSv1/SSLv3, Cipher is AES256-SHA
> Server public key is 2048 bit
> SSL-Session:
> Protocol : TLSv1
> [...]
>
> Atenciosamente,
>
> César Fazan
>
> _______________________________________________
> eppnicbr mailing list
> eppnicbr at eng.registro.br
> https://eng.registro.br/mailman/listinfo/eppnicbr
_______________________________________________
eppnicbr mailing list
eppnicbr at eng.registro.br
https://eng.registro.br/mailman/listinfo/eppnicbr
More information about the eppnicbr
mailing list