As informações abaixo servem para configurar o acesso à página web do Forticspbx usando o protocolo https(porta 443), para que indique a conexão segura. 

Sem essa configuração, o acesso via https vai sempre informar conexão não segura.


Passo 1:

Copiar o certificado e chave privada para o servidor, usando scp(no linux), winscp(no windows) ou alguma aplicação que possa realizar esse processo.

exemplo: 

usando uma máquina linux que tenha os arquivos necessários para realizar a cópia.

scp -r arquivo_certificado usuário@ip_servidor:/etc/pki/tls/certs

scp -r arquivo_chaveprivada usuário@ip_servidor:/etc/pki/tls/private

o password que será solicitado para digitar, é o do usuário do servidor.


Obs1: Os diretórios onde ficam os certificados e chave privada são, respectivamente, /etc/pki/tls/certs e /etc/pki/tls/private.

Obs2: Sempre salvar um cópia dos arquivos como backup antes de modificá-lo.


Passo 2:

Editar os arquivos socketio.conf e ssl.conf realizando as seguintes alterações:

vim /etc/httpd/conf.d/socketio.conf

descomentar as linhas:

#<VirtualHost *:443>

#ErrorLog logs/ssl_error_log

#TransferLog logs/ssl_access_log

#LogLevel warn

#SSLEngine on

#SSLProtocol all -SSLv2 -SSLv3

#SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA

#SSLCertificateFile /etc/pki/tls/certs/forticspbx.crt

#SSLCertificateKeyFile /etc/pki/tls/private/forticspbx.key

#<Files ~ "\.(cgi|shtml|phtml|php3?)$">

#    SSLOptions +StdEnvVars

#</Files>

#<Directory "/var/www/cgi-bin">

#    SSLOptions +StdEnvVars

#</Directory>

#BrowserMatch "MSIE [2-5]" \

#         nokeepalive ssl-unclean-shutdown \

#         downgrade-1.0 force-response-1.0

#CustomLog logs/ssl_request_log \

#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

#

#RewriteEngine On

#RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]

#RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]

#RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]

#RewriteCond %{QUERY_STRING} transport=websocket    [NC]

#RewriteRule /(.*)           ws://127.0.0.1:4540/$1 [P,L]

#ProxyPass        /socket.io http://127.0.0.1:4540/socket.io

#ProxyPassReverse /socket.io http://127.0.0.1:4540/socket.io

#</VirtualHost>


Alterar os arquivos nas linhas que indicarem o SSLCertificateFile(certificado) e SSLCertificateKeyFile(chave privada), apontando o caminho do diretório para onde foi copiado o certificado e a chave privada.

SSLCertificateFile /etc/pki/tls/certs/arquivo_certificado

SSLCertificateKeyFile /etc/pki/tls/private/arquivo_chaveprivada


o arquivo ficará assim:

cat /etc/httpd/conf.d/socketio.conf

# redirecionamento socket para a porta 80

<virtualHost *:80>

RewriteEngine On

RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]

RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]

RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]

RewriteCond %{QUERY_STRING} transport=websocket    [NC]

RewriteRule /(.*)           ws://127.0.0.1:4540/$1 [P,L]

ProxyPass        /socket.io http://127.0.0.1:4540/socket.io

ProxyPassReverse /socket.io http://127.0.0.1:4540/socket.io

</virtualHost>

# redirecionamento socket para a porta 443

<VirtualHost *:443>

ErrorLog logs/ssl_error_log

TransferLog logs/ssl_access_log

LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA

SSLCertificateFile /etc/pki/tls/certs/arquivo_certificado

SSLCertificateKeyFile /etc/pki/tls/private/arquivo_chaveprivada

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

    SSLOptions +StdEnvVars

</Files>

<Directory "/var/www/cgi-bin">

    SSLOptions +StdEnvVars

</Directory>

BrowserMatch "MSIE [2-5]" \

         nokeepalive ssl-unclean-shutdown \

         downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

RewriteEngine On

RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]

RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]

RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]

RewriteCond %{QUERY_STRING} transport=websocket    [NC]

RewriteRule /(.*)           ws://127.0.0.1:4540/$1 [P,L]

ProxyPass        /socket.io http://127.0.0.1:4540/socket.io

ProxyPassReverse /socket.io http://127.0.0.1:4540/socket.io

</VirtualHost>


Passo 3:

Editar o arquivo ssl.conf nas linhas que indicam o SSLCertificateFile e SSLCertificateKeyFile, apontando o caminho do diretório para onde foi copiado o certificado e a chave privada.

vim /etc/httpd/conf.d/ssl.conf

#   Server Certificate:

# Point SSLCertificateFile at a PEM encoded certificate.  If

# the certificate is encrypted, then you will be prompted for a

# pass phrase.  Note that a kill -HUP will prompt again.  A new

# certificate can be generated using the genkey(1) command.

SSLCertificateFile /etc/pki/tls/certs/arquivo_certificado


#   Server Private Key:

#   If the key is not combined with the certificate, use this

#   directive to point at the key file.  Keep in mind that if

#   you've both a RSA and a DSA private key you can configure

SSLCertificateKeyFile /etc/pki/tls/private/arquivo_chaveprivada


Passo 4:

Após as edições, basta fazer o restart do serviço httpd e acessar a página usando o nome de hots na url para o acesso.


systemctl restart httpd