Apache Instalar LetsEncrypt no Debian 10 (Certificado SSL grátis!)

UPDATE Debian 10

O Debian 10 deixou de suportar Python 2.7 que é uma das dependências do LetsEncrypt, devido a isso o procedimento abaixo deixou de ser válido! no entanto passou a ser ainda mais simples…

Agora basta instalar o pacote do repositório oficial do Debian para ter ssl, o procedimento que funciona no Debian 10 é o seguinte:

1º – apt install python3-certbot-apache

2º – certbot

Correndo os 2 comandos anteriores iniciará o wizard que guiará pela obtenção e instalação dos novos certificados ssl para Apache no Debian 10

LetsEncrypt Debian 9

O Lets Encrypt  é um serviço que permite obter certificados digitais gratuitos, para permitir de uma forma fácil e gratuita disponibilizar https em qualquer site.

Os passos que enumero a seguir são para utilização no Debian (em distribuições derivadas como Ubuntu, Mint, etc.. deve funcionar! com sudo!)

Antes de começar é necessário já ter o Apache ou Ngix instalado e configurado para responder na porta 80 e 443!

Caso ainda não tenha git instalado temos que o instalar com o comando:
apt-get install git
A seguir fazemos um clone do repositório do GitHub:

git clone https://github.com/letsencrypt/letsencrypt

Antes de prosseguir é conveniente já ter a porta 443 reencaminhado para o servidor, pois durante o processo haverá uma validação do Lets Encrypt, em que há uma ligação à porta 443 para verificação!

Para o script configurar automaticamente os virtual hosts com SSL é necessário que o modulo ssl já esteja ativo no apache :
a2enmod ssl

Se não houver ficheiros de configuração para os hosts virtuais estes serão criados com as configurações corretas.

E por ultimo é só ir ao directório onde foi clonado o repositório e correr o script automático:

cd letsencrypt
./letsencrypt-auto

Este comando vai verificar se os pacotes necessários existem no sistema e caso não existam instala!

Quando as dependências estiverem satisfeitas um wizard questionará quais os sites configurados no Apache é que queremos configurar para usar ssl.

Caso o site tenha todo o conteúdo servido por https o icon da barra de endereço ficará verde… caso não fique ou haja algum aviso de “mixed content” pode ser necessário modificar o código do site para carregar scripts, css , imagens e outros conteúdos por https, ou deixar que o browser decida omitindo o prefixo do url (http ou https), por exemplo uma imagem carregada como img rsc=”http://antoniocampos.net/imagem.png” deverá ficar apenas img src=”//antoniocampos.net/imagen.png”, a omissão de protocolo é suportado por todos os browser recentes.

ssl

Apache2 Activar compressão Gzip

Hoje tentei activar a compressão gzip num servidor e pura e simplemente não funcionava, acrescentei a linha

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript

no .htaccess conforme tinha lido algures na internet, depois de testar e restestar, lembrei-me de ver no error.log do apache e tinha lá o seguinte erro que impedia que o gzip funcionasse:

an unknown filter was not added: DEFLATE

Para resolver esse erro basta simplesmente na linha de comandos correr o seguinte comando:

a2enmod deflate

E a seguir forçar o reload do apache que em debian é

/etc/init.d/apache2 force-reload

E ficou o gzip a funcionar correctamente.

Nota mental: antes de começar a googlar por um problema desconhecido, fazer tail aos logs.

Ubuntu, Apache, php e Mysql

Não podia ser mais fácil instalar um servidor web com Ubuntu basta na consola escrever

sudo apt-get install apache2 mysql-server-4.1 php5 php5-mysql

Se o servidor for apenas para uso pessoal e testes sem acessos externos podemos fazer

sudo chmod 777 /var/www/

Se o servidor estiver disponivel na internet devemos ter mais preocupação com a segurança!!

Para testar o servidor basta na pasta /var/www (Pasta root default do apache) colocar um ficheiro.php com o conteudo

< ?php phpinfo(); ?>

e apontar o browser para “http://127.0.0.1/ficheiro.php” se vir uma página com a configuração do php então temos o php a trabalhar!!

Para testar o MySQL criamos um ficheiro “mysql.php” com o conteudo

< ?php $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Erro ao ligar ao mysql: ' . mysql_error()); } echo 'Funciona!!!!'; mysql_close($link); ?>

e apontamos o browser para http://127.0.0.1/mysql.php e o estado da operacionalidade do mysql aparecerá nessa página!!!
Por defeito a password de root é em branco que por razões óbvias deve ser alterada!!!

Simples!!!

Apache, php e MySQL @ home….

Apache webserverPhpMysql

Vou tentar explicar aqui como se configura um servidor web com suporte para Php e Mysql num sistema Windows, testei em XP home e Professional!!!
No windows XP professional vem incluido o IIS que é o servidor web da Microsoft mas aqui o que vamos usar é o Apache, por causa da universalidade, segurança, fiabilidade etc etc etc etc…

Algumas considerações:
php.ini é o ficheiro onde são armazenadas as configurações do php on de podemos configurar o php para carregar varios modulos entre os quais o modulo que liga ao mysql. este ficheiro encontrasse no directorio de instalação do php.
httpd.conf é o ficheiro onde estão as configurações do Apache entre as quais o directorio onde o estão armazenados as paginas que serão “servidas” pelo nosso servidor… este ficheiro está no directorio de instalação do Apache\conf\

Para editar estes ficheiros basta usar o bloco de notas. Cada um deles tem uma sintaxe especifica que tem imperativamente que ser mantida….
Agora mãos à obra…
Continuar a ler Apache, php e MySQL @ home….