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: