Tabela de conteúdos

Certificados Digitais

Caso você seja o responsável por um laboratório ou um usuário que gerencie um subdomínio do DCC e tenha alguma aplicação que necessite de um certificado digital, você pode requisitar certificados digitais de duas maneiras diferentes.

1) ICP-EDU - UFMG/RNP

A primeira e mais recomendada é solicitar um certificado digital com validade de 1 ano diretamente à UFMG.

Procedimento: enviar um e-mail para: suporte@dti.ufmg.br solicitando o certificado.

2) LetsEncrypt

A segunda maneira é utilizar certificados com duração mais curta (3 meses) e que devem ser atualizados frequentemente de forma automática.

Let's Encrypt é uma autoridade de certificação, ou seja, um terceiro que fornece certificados SSL confiáveis gratuitamente. O período de validade de cada certificado é curto, 3 meses, porém a revalidação do certificado pode ser realizada de maneira automatizada fazendo uso de um script.

O script acme.sh (https://github.com/Neilpang/acme.sh) é um exemplo de script automatizado que revalida certificados. Este script irá criar uma ação no crontab da sua máquina para revalidar os certificados automaticamente. Assim como o Let's Encrypt, o acme.sh é gratuito. Além disso, por ser codificado puramente em shell, este script é simples, poderoso, de fácil utilização e não depende de bibliotecas externas. Vale também lembrar que o script é compatível a várias plataformas OS, como Ubuntu, Windows, FreeBSD e Mac OSX, além de ter suporte ao modo Apache.

Instalação acme.sh

Existem duas maneiras de instalar o acme.sh em sua máquina. A primeira maneira é automática e a segunda um pouco mais manual, em casos em que o usuário deseja fazer a instalação com configurações diferentes da padrão.

Instalação automática

Para instalar o script, basta rodar o seguinte comando:

curl https://get.acme.sh | sh

Ou se preferir:

wget -O -  https://get.acme.sh | sh

Instalação manual

Neste modo, o usuário é capaz de fazer algumas alterações nas configurações. Para isso, primeiro, clone o script do seu repositório git:

git clone https://github.com/Neilpang/acme.sh.git

Utilizando o comando “ls -la”, você pode perceber que uma nova pasta “.acme.sh” foi criada. Dê cd nesta pasta:

cd .acme.sh/

Caso a instalação siga com o seu padrão, uma pasta será criada neste diretório para o domínio que o certificado for criado. Nesta pasta estarão os arquivos de configuração do certificado, a chave e os certificados do seu domínio. No arquivo “.conf” estarão detalhados diversas informações, como o domínio, o caminho do diretório do web root, a data de criação e de renovação do certificado, entre outras.

Caso seja de agrado alterar algumas dessas informações padrões para algo mais pessoal, antes de fazer a instalação, digite o seguinte comando:

./acme.sh --help

Repare nas opções que lhe são ofertadas e configure a instalação do script da forma que desejar. Por exemplo, caso seja necessário debugar a execução do script, basta utilizar a opção “–debug”:

./acme.sh --install --debug 

Vale ressaltar que instalar esse script várias vezes em um curto espaço de tempo pode gerar um bloqueio temporário para realizar esta ação. Para isso, quando estiver em fase de testes, não se esqueça de adicionar a opção:

--test

Após a instalação, é necessário ativar o certificado para o seu domínio. Execute o seguinte comando:

./acme.sh --issue -d dominio.com 

Caso você deseja especificar o diretório em que o web root está, utilize a opção “-w”. Por padrão, o caminho é: /var/www/html.

./acme.sh --issue -d dominio.com -w /caminho/para/o/diretorio

Caso seja necessário emitir o certificado sem ter um servidor web ativo (Modo Standalone), basta utilizar a opção “–standalone”. É necessário que a porta 80 (TCP) esteja livre para ser utilizada. Deve ser executado como root e porta 80 deve estar disponível para acesso externo no seu firewall e no firewall do DCC:

./acme.sh --issue --standalone -d dominio.com 

O campo “Your cert is in” diz onde o certificado está localizado, o campo “Your cert key is in” onde a chave do seu certificado está localizada, o campo “The intermediate CA cert is in” onde o certificado intermediário está localizado e o campo “And the full chain certs is there:” onde a corrente de certificados está localizada.

É necessário adcionar esses caminhos no arquivo “.conf” do seu Apache nos campos “SSLCertificateFile”, “SSLCertificateKeyFile”, “SSLCACertificateFile” e “SSLCertificateChainFile” respectivamente. Por padrão, o arquivo “.conf” está localizado no seguinte diretório:

/etc/apache2/sites-enabled

Adicione as seguintes linhas:

SSLEngine on
SSLCertificateFile /caminho/para/o/diretorio/dominio.cer        
SSLCertificateKeyFile /caminho/para/o/diretorio/dominio.key
SSLCACertificateFile /caminho/para/o/diretorio/ca.cer
SSLCertificateChainFile /caminho/para/o/diretorio/fullchain.cer

É recomendado que estes arquivos não estejam salvos no diretório em que o script está instalado. Para configurar onde os arquivos serão salvos, basta executar o seguinte comando no momento da instalação:

acme.sh --install-cert -d example.com \
--cert-file      /caminho/para/o/diretorio/cert.pem  \
--key-file       /caminho/para/o/diretorio/key.pem  \
--ca-file        /caminho/para/o/diretorio/ca.pem  \
--fullchain-file /caminho/para/o/diretorio/fullchain.pem

No campo “/caminho/para/o/diretorio” deixe o caminho do diretório em que você deseja salvar os arquivos.

Feito isso, certifique-se de reiniciar o serviço do Apache:

service apache2 restart

Para mais informações, basta acessar a página https://github.com/Neilpang/acme.sh.