Aqui está o problema:
SSLCertificateKeyFile /etc/apache2/ssl/domain.csr
Você colocou seu arquivo de solicitação de assinatura de certificado (CSR) aqui por engano. Você deve colocar lá o arquivo de chave privada usado para gerar o CSR. Esse arquivo de chave privada não deve ser protegido por senha, caso contrário você precisaria digitar uma senha toda vez que você (re) iniciar o Apache.
Para o benefício das gerações futuras, aqui está um breve resumo de como gerar CSR-s com o OpenSSL (um bom tutorial está disponível no Documentação do Ubuntu ):
1) Gere a chave do servidor:
openssl genrsa -des3 -out server.key 2048
Isso requer que você especifique uma senha.
2) Criando uma chave privada sem senha, digite a senha que você usou acima quando solicitado:
openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.SECURE
mv server.key.insecure server.key
3) Gere o CSR com sua chave privada sem senha:
openssl req -new -key server.key -out mydomain.org.csr
onde "mydomain.org" pode ser seu domínio. Você tem que responder algumas perguntas de forma interativa. Quando terminar, envie o arquivo mydomain.org.csr
para sua autoridade de certificação. Você receberá de volta um arquivo *.crt
ou um arquivo *.pem
. Vamos supor que eles lhe deram mydomain.org.crt
. Instale-o como seu certificado e o arquivo de chave sem senha como sua chave (os locais são válidos para o Ubuntu 14.04, eles podem estar em algum outro lugar em outros sistemas, verifique os documentos do Apache2):
sudo cp mydomain.org.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private/mydomain.org.key
E finalmente edite a configuração do Apache2 (pode ser default-ssl.conf
):
SSLEngine on
SSLCertificateFile /etc/ssl/certs/mydomain.org.crt
SSLCertificateKeyFile /etc/ssl/private/mydomain.org.key
Espero que isso ajude.