Configurando HTTPS
Configurando HTTPS
Ambiente de desenvolvimento
Ativar o módulo SSL
O suporte a SSL, vem por padrão no pacote Apache Ubuntu 14.04 ou superior. Precisamos habilitá-lo a tirar proveito do SSL em nosso sistema. Ative o módulo digitando:
sudo a2enmod ssl
Depois de habilitar o SSL, você terá que reiniciar o servidor web para que a alteração seja reconhecida:
sudo service apache2 restart
Crie um Certificado SSL autenticado
Comecemos criando um subdiretório dentro da hierarquia de configuração do Apache para colocar os arquivos de certificados que faremos:
sudo mkdir /etc/apache2/ssl/{nome_instalacao} #-- Ex.: sudo mkdir /etc/apache2/ssl/testing
Agora que temos um local para colocar nossa chave e certificado, podemos criá-los com o comando:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/{nome_instalacao}/apache.key -out /etc/apache2/ssl/{nome_instalacao}/apache.crt
O que você está executando é:
- openssl: Esta é a ferramenta de linha de comando básica fornecida pela OpenSSL para criar e gerenciar certificados, chaves, solicitações de assinatura, etc.
- req: Especifica um subcomando para gerenciamento de solicitação de assinatura de certificado X.509 (CSR). O X.509 é um padrão de infraestrutura de chave pública que o SSL adere para sua gestão de chaves e certificados. Como queremos criar um novo certificado X.509, isso é o que queremos.
- -x509: esta opção especifica que queremos fazer um arquivo de certificado auto-assinado em vez de gerar um pedido de certificado.
- -nodes: esta opção informa ao OpenSSL que não queremos proteger nosso arquivo de chave com uma senha. Ter um arquivo de chave protegido por senha ficaria no caminho do Apache começando automaticamente, pois teríamos que inserir a senha toda vez que o serviço for reiniciado.
- - dias 365: especifica que o certificado que criamos será válido por um ano.
- -newkey rsa: 2048: Esta opção criará a solicitação de certificado e uma nova chave privada ao mesmo tempo. Isso é necessário porque não criamos uma chave privada com antecedência. A rsa:2048conta OpenSSL para gerar uma chave RSA que é de 2048 bits de comprimento.
- -keyout: este parâmetro nomeia o arquivo de saída para o arquivo de chave particular que está sendo criado.
- -out: esta opção nomeia o arquivo de saída para o certificado que estamos gerando.
Quando você clicar em "ENTER", será feita uma série de perguntas.
O item mais importante que é solicitado é a linha "Common Name (e.g. server FQDN or YOUR name)". Você deve inserir o nome de domínio que deseja associar ao certificado ou o endereço IP público do servidor se você não possui um nome de domínio.
A parte das perguntas parece algo assim:
Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:New York City Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company Organizational Unit Name (eg, section) []:Department of Kittens Common Name (e.g. server FQDN or YOUR name) []:your_domain.com Email Address []:your_email@domain.com
Configurar virtualhost
Editar o arquivo de configuração e alterar a porta:
<Virtualhost _default_:443>
Para habilitar o uso de SSL no host basta adicionar as seguintes linhas nas configurações do virtualhost:
SSLEngine on SSLProxyEngine On SSLCertificateFile /etc/apache2/ssl/{nome_instalacao}/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/{nome_instalacao}/apache.key
Adicionar as seguintes linhas para que ao acessar a instalação sem especificar o protocolo ele acesse utilizando HTTPS:
<VirtualHost *:80> ServerName academico.instituicao.com.br DocumentRoot /var/www/solisge_instalacao Redirect permanent / https://academico.instituicao.com.br/ </VirtualHost>
Download da base de dados
Para efetuar o download da base de dados do cliente através do browser acessar o seguinte link
academico.instituicao.com.br/index.php?module=basic&action=dbdownload
O download só será permitido se:
- O usuário estiver logado no sistema.
- Tiver permissão de admin no módulo básico.