[Eppnicbr] Certificado SSL

Hugo Koji Kobayashi koji at registro.br
Thu Jul 20 11:20:08 BRT 2006


César,

On Wed, Jul 19, 2006 at 10:34:02PM -0300, Cesar Fazan wrote:
> 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.

Não cheguei a olhar a implementação da EURid, mas uma das possíveis
diferenças é a de que eles não exijam certificado SSL do cliente.

> 
>     O shepp funciona normal aqui ... mais o openssl apenas consegue conectar 
> se eu especificar (-cert client.pem), a mesma coisa com php5 ... preciso 

A implementação EPP do Registro.br, além de utilizar TLS1 e checar
usuário e senha, também exige que o cliente apresente um certificado
assinado por nosso CA. O servidor de testes (beta.registro.br) faz uma
verificação um pouco mais relaxada para aceitar o certificado que está no
arquivo client.pem para qualquer provedor cadastrado.

> 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.


Você chegou a olhar a referência abaixo?

http://www.php.net/manual/en/ref.openssl.php

Hugo

> 
>     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
> 
> _______________________________________________
> eppnicbr mailing list
> eppnicbr at eng.registro.br
> https://eng.registro.br/mailman/listinfo/eppnicbr



More information about the eppnicbr mailing list