Como criar facilmente um certificado SSL e configurá-lo no Apache2 no Mac OS X?


34

Eu gostaria de usar meu Mac OS X com https para testes de desenvolvimento local. Como posso facilmente fazer o Apache2 responder ao SSL, apenas para propostas de teste - não quero um certificado real, apenas um falso para fazer o https local funcionar

Respostas:


58

Para testes de desenvolvimento local, um certificado autoassinado é adequado. Você pode gerar um com o kit OpenSSL da seguinte maneira:

Gerando a chave privada:

openssl genrsa -des3 -out server.key 1024

saída:

Gerando chave privada RSA, módulo de 1024 bits
.................................................. ....... ++++++
........ ++++++
e é 65537 (0x10001)
Digite a senha do PEM:
Verificando a senha - insira a senha do PEM:

digite uma senha para sua chave privada.

Gerando o CSR (solicitação de assinatura de certificado):

openssl req -new -key server.key -out server.csr

ele solicitará detalhes como este:

Nome do país (código de 2 letras) [GB]:
Nome do estado ou província (nome completo) [Berkshire]:
Nome da localidade (por exemplo, cidade) [Newbury]:
Nome da organização (por exemplo, empresa) [My Company Ltd]:
Nome da unidade organizacional (por exemplo, seção) []:
Nome comum (por exemplo, seu nome ou o nome do host do seu servidor) []:
Endereço de e-mail []:
Digite os seguintes atributos 'extras'
para ser enviado com sua solicitação de certificado
Uma senha de desafio []:
Um nome opcional da empresa []:

é bem direto, o nome comum é o nome do host do seu servidor, como diz entre parênteses.

Gerando o certificado autoassinado:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Configurando o SSL no httpd.conf para Apache:

SSLEngine ativado
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(substitua o caminho adequadamente pelo caminho do seu certificado e chave)

Reinicie o Apache :

apachectl restart

O Apache solicitará a senha da sua chave. Se você acha que vai desligar muito o servidor, remova a senha da chave para evitar que ela seja inserida toda vez. Caso contrário, não se preocupe. Nesse caso, conclua esta etapa após a etapa 2 ( Gerando o CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key

é quase chato para mim. Quando tento acessar alguma página no meu Rails, usando http, a página existe, mas quando uso https, ele retorna a página não encontrada. Você sabe o que poderia ser?
— 22630 Daniel Cukier

Você mudou seu host virtual para usar https na porta 443? Deve olhar como este: <VirtualHost 192.168.1.100:443> SSLEngine On, etc .... </ VirtualHost>
— John T

Obrigado por isso, eu tenho um certificado SSL funcionando bem no Lion com isso. Apenas pensei em acrescentar alguns pontos, que devem facilitar sua vida. O Apache da Apple possui um httpd-ssl.conf que já está configurado para procurar em / private / etc / apache2; portanto, se você colocar os arquivos server *., Haverá menos um arquivo para editar. Além disso, você precisa editar o httpd.conf porque a linha que inclui o httpd-ssl.conf é comentada por padrão. Finalmente, 365 dias é um pouco curto, você pode querer definir uma data de validade mais longo ou você vai estar fazendo isso novamente no próximo ano (eu usei 3650)
— GordonM

Se alguém tiver problemas como o meu, ficará feliz em encontrar este link, que explica como configurar o host virtual com o virtualhostx corretamente para funcionar com o ssl yellowrobot.heroku.com/blog/2012/01/22/…
— Relequestual

Se é a sua máquina dev você provavelmente gostaria de ter a chave privada sem senha: openssl rsa -in server.key out server.nopass.key
— Aldekein
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.