Utilizaremos o
OpenSSL para gerar os certificados e chaves para que o site do
Cacti funcione em http seguro (https). Como já informei no meu artigo anterior, no meu cenário isso é extremamente necessário, recomendo a todos, porém, caso não veja necessidade, pule esta parte do processo.
É importante lembrar novamente que como é um sistema de utilização interna, não possuo a necessidade de compra de um certificado válido, portanto eu mesmo decidi gerá-lo por conta própria no meu servidor.
Descompacte os arquivos e entre no diretório:
# tar -zxf openssl-0.9.8e.tar.gz
# cd openssl-0.9.8e
Compilando:
# ./config --prefix=/usr/local/open-ssl
# make
# make install
Abaixo vou descrever os comandos que utilizei para gerar as chaves e certificados do site.
Entre no diretório onde criaremos as chaves:
# cd /etc/ssl/private/
Gerando a chave para a criação dos certificados:
# openssl genrsa -des3 -out nome_chave.key 2048
Resultado:
Generating RSA private key, 2048 bit long modulus
...................+++
...................+++
e is 65537 (0x10001)
Enter pass phrase for nome_chave.key: senha
Verifying - Enter pass phrase for nome_chave.key: senha
Gerando a "requisição de certificado" - arquivo onde estarão os dados dos certificados a serem gerados pela CA, que no nosso caso é este mesmo servidor onde o serviço do CACTI irá funcionar:
# openssl req -new -key nome_chave.key -out req.cert.csr
Resultado:
Enter pass phrase for nome_chave.key:
senha
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]:
BR
State or Province Name (full name) [Some-State]:
Minas Gerais
Locality Name (eg, city) []:
Belo Horizonte
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Nome da Empresa Responsável
Organizational Unit Name (eg, section) []:
Organização
Common Name (eg, YOUR name) []:
Nome.do.site
Email Address []:
responsável@exemplo.com.br
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
Lembrete para senha
An optional company name []:
Sigla do nome da empresa
Necessitamos, agora, fazer com que a chave funcione sem a necessidade da digitação de sua senha, pois sem esta configuração a senha utilizada na criação da chave deverá ser fornecida toda vez que iniciarmos o nosso servidor WEB. Abaixo seguem as linhas de comandos necessárias para que isso seja possível.
Gerando um arquivo com senha embutida:
# openssl rsa -in nome_chave.key -out nome_chave.key.insecure
Resultado:
Enter pass phrase for nome_chave.key: senha
writing RSA key
Realize um backup da chave original:
# mv nome_chave.key nome_chave.backup
Faça com que a chave com senha embutida passe ser a chave principal:
# mv nome_chave.key.insecure nome_chave.key
Gerando o certificado para o site do Cacti, com validade de um ano, com base nas informações do arquivo de "requisição de certificados" (req.cert.csr) e na nossa chave com senha embutida (nome_chave.key):
# openssl x509 -req -days 365 -in req.cert.csr -signkey nome_chave.key -out graficos.seudominio.com.br.crt
Mova o certificado para o diretório de certificados do servidor:
# mv graficos.seudominio.com.br.crt /etc/ssl/certs/
Enfim, com a(s) chave(s) e certificado(s) gerado(s), podemos passar para o próximo passo, que será a configuração do servidor http (
Apache). Abaixo seguem os caminhos dos nossos arquivos gerados para recapitularmos.
- Certificado do site: /etc/ssl/certs/graficos.seudominio.com.br.crt
- Chave: /etc/ssl/private/nome_chave.key
- Arquivo de requisição: /etc/ssl/private/req.cert.csr