Utilizaremos o
OpenSSL para nos gerar os certificados e chaves para que o site do
Nagios funcione em http seguro (https), no meu cenário isto é extremamente necessário, recomendo a todos, porém caso não veja necessidade, pule esta parte do processo.
É importante falar também que como é um sistema de utilização interna, eu não possuo a necessidade de compra de um certificado válido, portanto eu mesmo decidi gerá-lo por conta própria.
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 estão descritos os passos para a geração das chaves e certificados que o
Apache necessita para trabalhar em http seguro (https), não possuo amplos conhecimentos em certificados e chaves para a WEB, portanto, me referenciei em um artigo encontrado na própria comunidade:
E também na documentação do site dos próprios desenvolvedores do serviço:
Abaixo vou descrever os comandos que utilizei e se necessitarem de mais detalhes por favor visualizem o artigo ou a documentação acima, pois lá o nível de detalhes no que diz respeito a certificação na WEB são maiores.
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 gerados por este servidor:
# 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 Servidor
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 segue as linhas de comandos necessárias para que isto 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 Nagios, com validade de 1 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 nagios.exemplo.com.br.crt
Mova o certificado para o diretório de certificados do servidor:
# mv nagios.exemplo.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/nagios.exemplo.com.br.crt
- Chave: /etc/ssl/private/nome_chave.key
- Arquivo de requisição: /etc/ssl/private/req.cert.csr