certificados ssl

6
Professor Gustavo Dias 1 Certificados SSL Objetivo Para estabelecer uma ligação segura e de confiança é necessário gerar certificados que atestem a identidade do servidor. Esses certificados são geralmente emitidos por entidades certificadoras (Certificate Authority) independentes e de confiança reconhecida. No entanto, para uma utilização mais caseira e económica, é possível criar um certificado “auto-assinado”. Instalação root@server:~# apt-get install openssl root@server:~# apt-get install ca-certificates Geração dos certificados A geração de um certificado SSL requer os seguintes passos: primeiro é gerada uma chave privada; em seguida esta é usada para gerar um pedido de certificação (Certificate Signing Request (CSR)). O pedido de certificação é então enviado para a entidade certificadora (Certificate Authority (CA)) que devolve o certificado assinado. Este último passo pode ser feito pelo próprio, gerando assim um certificado auto-assinado (Self- signed Certificate). Criar uma diretório de trabalho: root@server:~# mkdir certs root@server:~# cd certs root@server:~/certs#

Upload: gustavo-dias

Post on 28-Dec-2015

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Certificados SSL

Professor Gustavo Dias 1

Certificados SSL

Objetivo

Para estabelecer uma ligação segura e de confiança é necessário gerar certificados que

atestem a identidade do servidor. Esses certificados são geralmente emitidos por

entidades certificadoras (Certificate Authority) independentes e de confiança

reconhecida. No entanto, para uma utilização mais caseira e económica, é possível criar

um certificado “auto-assinado”.

Instalação

root@server:~# apt-get install openssl

root@server:~# apt-get install ca-certificates

Geração dos certificados

A geração de um certificado SSL requer os seguintes passos: primeiro é gerada uma

chave privada; em seguida esta é usada para gerar um pedido de certificação (Certificate

Signing Request (CSR)). O pedido de certificação é então enviado para a entidade

certificadora (Certificate Authority (CA)) que devolve o certificado assinado. Este último

passo pode ser feito pelo próprio, gerando assim um certificado auto-assinado (Self-

signed Certificate).

Criar uma diretório de trabalho:

root@server:~# mkdir certs

root@server:~# cd certs

root@server:~/certs#

Page 2: Certificados SSL

Professor Gustavo Dias 2

Chave privada

Gerar a chave privada (Private Key) encriptada:

root@server:~/certs# openssl genrsa -des3 -out server.key 2048

Generating RSA private key, 2048 bit long modulus

...+++

..............+++

e is 65537 (0x10001)

Enter pass phrase for server.key:

Verifying - Enter pass phrase for server.key:

Chave privada sem password

A chave privada está encriptada e protegida por uma password, o que implica que se

escreva a password cada vez que um serviço necessita da chave. Como solução, é

possível gerar uma versão da chave sem a proteção da password:

root@server:~/certs# openssl rsa -in server.key -out server.key.insecure

Enter pass phrase for server.key:

writing RSA key

Esta chave sem password, deve ser guardada com especial cuidado e, nomeadamente,

só deve ser acessível pelo utilizador root:

root@server:~/certs# chmod 600 server.key.insecure

Pedido de certificação

Gerar o pedido de certificação (Certificate Signing Request), no campo Common

Name deverá ser indicado o nome do servidor para o qual está a ser gerado o certificado.

Page 3: Certificados SSL

Professor Gustavo Dias 3

Caso se pretenda um certificado para vários servidores no mesmo domínio pode-se usar

a sintaxe *.home.lan:

root@server:~/certs# openssl req -new -key server.key -out server.csr

Enter pass phrase for server.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:PT

State or Province Name (full name) [Some-State]:Portugal

Locality Name (eg, city) []:

Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Home Lan

Organizational Unit Name (eg, section) []:

Common Name (e.g. server FQDN or YOUR name) []:*.home.lan

Email Address []:

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

Page 4: Certificados SSL

Professor Gustavo Dias 4

Certificado auto-assinado

O pedido de certificado deveria ser enviado para a entidade certificadora, que

devolveria o certificado assinado. Neste caso, será usado para criar um certificado auto-

assinado (Self-Signed Certificate), válido por 365 dias:

root@server:~/certs# openssl x509 -req -days 365 -in server.csr -signkey server.key -out

server.crt

Signature ok

subject=/C=PT/ST=Portugal/O=My Home Lan/CN=*.home.lan

Getting Private key

Enter pass phrase for server.key:

O processo de criação dos certificados está concluído. No final foram gerados os

seguintes ficheiros:

Ficheiro Descrição

server.key A chave privada

server.key.insecure A chave privada sem password

server.csr O pedido de assinatura do certificação

server.crt O certificado auto-assinado.

O certificado auto-assinado é válido por 365 dias. No entanto, este pode ser renovado

em qualquer altura, bastando para tal regenerar o certificado auto-assinado.

Instalação da chave privada e certificado auto-assinado

Finalmente, copiar as chaves privadas para /etc/ssl/private e o certificado

para /etc/ssl/certs:

Page 5: Certificados SSL

Professor Gustavo Dias 5

root@server:~/certs# cp server.key server.key.insecure /etc/ssl/private/

root@server:~/certs# cp server.crt /etc/ssl/certs/

O certificado auto-assinado está pronto a usar.

Sendo o certificado auto-assinado, ou seja, não estando assinado por uma entidade

certificada, a sua utilização dará sempre origem a um aviso por parte da aplicação

cliente:

Referências

OpenSSL (http://www.openssl.org/)

Wikipedia: OpenSSL (http://pt.wikipedia.org/wiki/Openssl)

Wikipedia: Autenticação (http://pt.wikipedia.org/wiki/Autenticação)

Page 6: Certificados SSL

Professor Gustavo Dias 6

Wikipedia: Autorização (http://pt.wikipedia.org/wiki/Autorização)

Wikipedia: Certificate Authority (http://en.wikipedia.org/wiki/Certificate_authority)

Wikipedia: TLS (http://pt.wikipedia.org/wiki/Tls)

Wikipedia: TLS (http://en.wikipedia.org/wiki/Transport_Layer_Security)

How to create a self-signed SSL Certificate

(http://www.akadia.com/services/ssh_test_certificate.html)

Fonte:

http://www.servidordebian.org/pt/wheezy/intranet/ssl_cert/self_signed