HTTP Strict Transport Security para o Apache, NGINX e Lighttpd

HTTP Strict Transport Security (abreviado HSTS) é uma funcionalidade de de segurança que permite a um website informar o browser que deve comunicar utilizando apenas HTTPS, em vez de utilizar HTTP

Configuração para Apache

Deve adicionar-se ao virtualhost configurado para responder por HTTPS o seguinte:

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

O Apache deve ser reiniciado depois de ser efetuada a alteração à configuração

Configuração para Lighttpd

Para configuração no Lighttpd deve adicionar-se ao ficheiro /etc/lighttpd/lighttpd.conf a seguinte configuração:

server.modules += ( "mod_setenv" )
$HTTP["scheme"] == "https" {
setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload")
}

Deve reiniciar-se o Lighttpd para que as alterações sejam aplicadas.

Configuração para NGINX

A configuração para NGINX é ainda mais sucinta, deve ser adicionado ao bloco SERVER da configuração HTTPS a seguinte linha:

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

Comandos OpenSSL para converter certificados SSL

Por vezes a configuração de SSL requer que os certificados SSL estejam em determinados formatos, por exemplo um servidor Windows importa e exporta ficheiros .pfx enquanto um servidor apache utiliza ficheiros individuais em formato PEM.

Os comandos abaixo permitem converter certificados SSL em diferentes formatos:

OpenSSL Convert PEM
Convert PEM to DER

# openssl x509 -outform der -in certificate.pem -out certificate.der

Convert PEM to P7B

# openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

Convert PEM to PFX

# openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

OpenSSL Convert DER
Convert DER to PEM

# openssl x509 -inform der -in certificate.cer -out certificate.pem

OpenSSL Convert P7B
Convert P7B to PEM

# openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Convert P7B to PFX

# openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

# openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

OpenSSL Convert PFX
Convert PFX to PEM

# openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

Preparar uma maquina virtual Red Hat Enterprise Linux para ser usada como template

No mundo do IT a automatização e agilização de tarefas é são factores determinantes para o sucesso das organizações. Face à necessidade constante de deploy de novas maquinas virtuais com características semelhantes tornou-se frequente fazer clones de máquinas, desta forma seguem algumas guidelines e comandos para criação de um clone de Red Hat Linux para ser usado como template.

# touch /.unconfigured
# rm -rf /etc/ssh/ssh_host_*
# ifdown eth0

Com recurso a um editor de texto modificar o ficheiro /etc/sysconfig/network-scripts/ifcfg-eth0 e remover a entrada HWADDR.

# ifup eth0

Utilizando um editor de texto remover a entrada para o interface de rede eth0 no ficheiro /etc/udev/rules.d/70-persistent-net.rules

# poweroff

Desta forma temos um template criado e pronto a utilizar para aprovisionamento de novas máquinas virtuais.

Ver progresso de backups e restores em MSSQL

Por vezes acompanhar o processo de restore e backup de bases de dados MSSQL pode ser uma tarefa desafiante, o contador “default” que apenas regista o progresso a cada 10% concluídos, para ultrapassar esta dificuldade pode ser executada a seguinte query que vai repostar o estado atual do backup ou restore:

SELECT session_id as SPID, command, a.text AS Query, start_time, percent_complete, dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time

FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a

WHERE r.command in (‘BACKUP DATABASE’,’RESTORE DATABASE’)

Extrair certificado e Chave Privada a partir de um PFX

Objetivo:

Por vezes existe a necessidade de exportar um certificado e a sua chave privada de um servidor Windows de forma a separar o par de chaves para que seja utilizado num outro servidor web que não o IIS.

Procedimento:

  1. Mover o ficheiro exportado (ex: file.pfx) para um servidor onde se encontre instalado o OpenSSL.
    Nota: O ficheiro pfx está em formato PKCS#12 e inclui o certificado e a chave privada.
    Para exportar a chave privada deve correr-se o seguinte comando:
    openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes
  2. De forma a exportar o certificado o comando a executar é o seguinte:
    openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
  3. O seguinte comando deve ser executado para remover a palavra passe da chave privada:
    openssl rsa -in key.pem -out server.key