[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