Para criar um certificado SSL local, configurar o VirtualHost no Apache2 e habilitar o HTTPS completo para o GLPI, siga este passo a passo.

1. Habilitar o Módulo SSL e Instalar o OpenSSL

1.1. Primeiro, garanta que as ferramentas necessárias estão instaladas e ative o módulo SSL no Apache:

sudo apt update
sudo apt install openssl apache2
sudo a2enmod ssl
sudo a2enmod rewrite

2. Criar o Certificado SSL Autoassinado Local

2.1. Para evitar erros de compatibilidade nos navegadores modernos, é ideal que o certificado contenha o Subject Alternative Name (SAN). Crie uma pasta para armazenar suas chaves:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/glpi.key -out /etc/apache2/ssl/glpi.crt

2.2. Preencha as perguntas:

Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]: Pernambuco
Locality Name (eg, city) []: Olinda
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Nome da empresa
Organizational Unit Name (eg, section) []: Setor responsável pelo Certificado SSL
Common Name (e.g. server FQDN or YOUR name) []: dominio.interno.com.br
Email Address []:email@empresa.com.br

3. Configurar o VirtualHost para HTTPS

3.1. Crie um novo arquivo de configuração do Apache para o seu GLPI:

sudo nano /etc/apache2/sites-available/glpi-ssl.conf

3.1. Adicione o seguinte bloco de configuração, alterando o ServerName, o caminho para a sua chave (.key), o certificado (.crt) e o diretório do GLPI. Note que também configuramos um redirecionamento automático da porta 80 (HTTP) para a 443 (HTTPS):

<VirtualHost *:80>
    ServerName glpi.empresa.interno.com.br
    Redirect permanent / https://glpi.empresa.interno.com.br
</VirtualHost>

<VirtualHost *:443>
    ServerName glpi.local
    DocumentRoot /var/www/html/glpi/public

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/glpi.crt
    SSLCertificateKeyFile /etc/apache2/ssl/glpi.key

    <Directory /var/www/html/glpi/public>
        AllowOverride All
        Require all granted
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/glpi_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/glpi_ssl_access.log combined
</VirtualHost>

4. Habilitar o site e reiniciar o ApacheHabilite o site configurado, verifique se não há erros de sintaxe nos arquivos de configuração e reinicie o serviço:

sudo a2ensite glpi-ssl.conf
sudo apache2ctl configtest
sudo systemctl restart apache2