Introdução
Este tutorial apresenta os passos necessários para se fazer a geração de Chave e Certificado SSL.
A seguir serão apresentados os requisitos bem como roteiro para a referida instalação.
Roteiro
1. Crie o arquivo /tmp/openssl.cnf
com o conteúdo a seguir não esquece de substituir a variável $HOSTNAME
pelo hostname
máquina (ex.: servidor
, não utilizar servidor.instituicao.br
).
[ req ] default_bits = 2048 # Size of keys string_mask = nombstr # permitted characters distinguished_name = req_distinguished_name [ req_distinguished_name ] # Variable name Prompt string #---------------------- ---------------------------------- 0.organizationName = Nome da universidade/organização organizationalUnitName = Departamento da universidade/organização emailAddress = Endereço de email da administração emailAddress_max = 40 localityName = Nome do município (por extenso) stateOrProvinceName = Unidade da Federação (por extenso) countryName = Nome do país (código de 2 letras) countryName_min = 2 countryName_max = 2 commonName = Nome completo do host (incluíndo o domínio) commonName_max = 64 # Default values for the above, for consistency and less typing. # Variable name Value #------------------------------ ------------------------------ #0.organizationName_default = organizationalUnitName_default = CPD #localityName_default = Porto Alegre #stateOrProvinceName_default = Rio Grande do Sul countryName_default = BR commonName_default = $HOSTNAME
É possível fazer o download do arquivo acima através da seguinte linha de comando:
wget https://svn.rnp.br/repos/CAFe/conf/ssl/openssl.cnf -O /tmp/openssl.cnf --no-check-certificate
2. Muito embora este seja um roteiro genérico, cada aplicação que for utilizar chave/certificado possuirá particularidades. Desta forma, escolha os comandos a serem executados neste passo de acordo com a aplicação que utilizará chave/certificado.
2.1 Apache
openssl genrsa 2048 -config /tmp/openssl.cnf > /etc/ssl/private/chave-apache.key openssl req -new -x509 -nodes -days 1095 -sha1 -key /etc/ssl/private/chave-apache.key -set_serial 00 \ -config /tmp/openssl.cnf > /etc/ssl/certs/certificado-apache.crt chown root:ssl-cert /etc/ssl/private/chave-apache.key /etc/ssl/certs/certificado-apache.crt chmod 640 /etc/ssl/private/chave-apache.key
2.2 OpenLDAP
openssl genrsa -out /etc/ldap/$HOSTNAME.key 2048 -config /tmp/openssl.cnf openssl req -new -key /etc/ldap/$HOSTNAME.key -out /etc/ldap/$HOSTNAME.csr -batch -config /tmp/openssl.cnf openssl x509 -req -days 730 -in /etc/ldap/$HOSTNAME.csr -signkey /etc/ldap/$HOSTNAME.key -out /etc/ldap/$HOSTNAME.crt
2.3 Shibboleth IDP
- No quarto comando, informe os seguintes dados:
- Confirme o código do País (BR)
- Unidade da federação (por extenso)
- Cidade (por extenso)
- Instituição (preferencialmente preencha com
[ABREV - Nome por extenso]
) - Departamento da instituição (preferencialmente preencha com
[ABREV - Nome por extenso]
) - Confirme que o Hostname está correto (nome DNS por extenso do host que será o IDP)
*No quinto comando, informe a senha"changeit"
. A senha está cadastrada no arquivo /etc/tomcat6/server.xml e o tomcat6 precisará dela para abrir o keystore que está sendo gerado.
cd /opt/shibboleth-idp/credentials/ rm -f idp* openssl genrsa 2048 -config /tmp/openssl.cnf > idp.key openssl req -new -x509 -nodes -days 1825 -sha1 -key idp.key -set_serial 00 -config /tmp/openssl.cnf > idp.crt openssl pkcs12 -export -in idp.crt -inkey idp.key -out idp.p12 -name idp -caname selfsigned
2.4 Shibboleth SP
openssl genrsa -out /etc/ssl/private/$HOSTNAME.key 2048 -config /tmp/openssl.cnf openssl req -new -key /etc/ssl/private/$HOSTNAME.key -out /etc/ssl/private/$HOSTNAME.csr -batch -config /tmp/openssl.cnf openssl x509 -req -days 730 -in /etc/ssl/private/$HOSTNAME.csr -signkey /etc/ssl/private/$HOSTNAME.key -out /etc/ssl/certs/$HOSTNAME.crt
2.5 SimpleSAML
cd /var/simplesamlphp/cert openssl genrsa 2048 -config /tmp/openssl.cnf > simplesaml.key openssl req -new -x509 -nodes -days 1095 -sha1 -key simplesaml.key -set_serial 00 -config /tmp/openssl.cnf > simplesaml.crt openssl pkcs12 -export -in simplesaml.crt -inkey simplesaml.key -out simplesaml.p12 -name simplesaml -caname selfsigned
3. Exclua o arquivo /tmp/openssl.cnf
. Para tanto, execute a linha de comando a seguir:
rm -f /tmp/openssl.cnf