Se você hospeda seu próprio wordpress é interessante habilitar o ssl para criptografar seu sua comunicação com o servidor, do contrário todas as suas senhas e demais dados que você envia no ato da publicação de conteúdo estarão vulneráveis a sniffing e M-i-M attack. Veremos como fazer essa configuração de uma forma bem simples.

Estou presumindo aqui que o seu wordpress já está funcionando e configurado, com Mysql, Apache, etc.

Passo 1 - Instalar pacotes necessários, caso ainda não tenha instalado.

$ sudo aptitude install openssl ssl-cert

Passo 2 - Gerar a chave privada do servidor.

$ cd /etc/ssl

$ sudo openssl genrsa -out private/server.key 2048

$ sudo chmod 400 private/server.key

Passo 3 - Gerar a requisição de certificado auto assinado. (Para blogs profissionais contrate um certificado “oficial”, verisign, godaddy, etc.)

$ sudo openssl req -new -key private/server.key -out server.csr

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: seu pais
State or Province Name (full name) [Some-State]: seu estado
Locality Name (eg, city) []: sua cidade
Organization Name (eg, company) [Internet Widgits Pty Ltd]: sua empresa
Organizational Unit Name (eg, section) []: seu departamento
Common Name (eg, YOUR name) []: *
Email Address []: seu e-mail

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Note que qualquer dos campos pode ser deixado em branco, basta digitar “.”, sem as aspas. Se você não tem vários IPs sobrando sugiro criar um certificado genérico (para todos os sites) usando no campo “Common name” um asterisco (*).

Passo 4 - Gerando o certificado

$ sudo openssl x509 -days 365 -req -in server.csr -signkey private/server.key -out certs/server.crt

Passo 5 - Configurando o site

Habilite o ssl

$ sudo a2enmod ssl

Crie um novo arquivo

$ cd /etc/apache2/sites-available

$ sudo vim wordpress-ssl

Coloque o conteúdo abaixo no arquivo

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName www.seusite.com.br
    DocumentRoot /var/www/seusite/
    Errorlog /var/log/apache2/site-error_log
    Customlog /var/log/apache2/site-access_log common
    AddDefaultCharset utf-8
    SSLEngine On
    SSLOptions +StrictRequire
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

Habilite o site criado

$ sudo a2ensite wordpress-ssl

Reinicie o apache para habilitar as configurações

$ sudo /etc/init.d/apache2 force-reload

Pronto, agora é só testar seu site https://www.seusite.com.br. O interessante é que deste jeito você poderá criar vários sites ssl, com o mesmo IP, todavia não tem como usar certificados diferentes para cada site.

Comments

Leave a Reply