Configurando o SSL com o Apache no Lion

6

Na sequência da minha pergunta anterior (que eu respondi a mim mesmo),

Configurando o OS X 10.7 Lion Server para servir o Rails Apps via Apache

... Estou agora procurando configurar o SSL.

Mais uma vez, eu tenho a configuração funcionando bem no Snow Leopard, mas eu quero configurá-lo em um novo i7 Mac Mini, então rodar o Snow Leopard não é uma opção.

Estou usando o host virtual nomeado kludge descrito na resposta do link acima, mas não consegui fazer o SSL funcionar.

A configuração do Snow Leopard estou baseando minha configuração do Lion está incluída abaixo.

Dicas sobre como configurar o equivalente no Lion seriam muito apreciadas. Obrigado.

<VirtualHost 10.0.1.1:80>
  ServerName bonk.example.com

  Redirect / https://bonk.example.com/

</VirtualHost>

<VirtualHost 10.0.1.1:443>
    ServerName bonk.example.com
    DocumentRoot "/Rails/deployed/bonk/current/public"
    RackEnv example_production
    RailsEnv example_production
    <Directory "/Rails/deployed/bonk/current/public">
      Order allow,deny
      Allow from all
      Options FollowSymLinks
    </Directory>

  SSLEngine on
  SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
  SSLOptions +FakeBasicAuth +ExportCertData +StdEnvVars +StrictRequire
  SSLCertificateFile /private/etc/apache2/server.crt
  SSLCertificateKeyFile /private/etc/apache2/server.key
  SSLCertificateChainFile /private/etc/apache2/ca.crt
  SetEnvIf User-Agent &quot;.*MSIE.*&quot; nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

  RequestHeader set X-Forwarded-Proto "https"

</VirtualHost>
Snips
fonte
Você já tentou este guia da Apple? developer.apple.com/internet/serverside/modssl.html
Obrigado, mas esse guia é bastante antigo. Tenho SSL trabalhando no Snow Leopard, mas o Lion muda bastante as coisas. Há soluções alternativas para hosts virtuais nomeados, mas não tenho SSL funcionando no Lion com essa configuração.
Snips
Como você faz isso como sua própria CA (autoridade de certificação)?
Chase Holden
O processo é exatamente o mesmo (depois de criar seu próprio certificado).
Snips
obviamente não é exatamente o mesmo. Eu criei minha própria CA usando o aplicativo de acesso a chaves da Apple, mas isso não significa que eu possa usá-lo com o código acima. Por favor poste a sintaxe correta se você souber como.
Chase Holden

Respostas:

7

Gerar uma chave de host

Primeiro, crie uma casa para os novos arquivos SSL. Eu uso o / etc / apache2 / ssl. Abra uma janela de terminal, cd para o novo diretório e emita o seguinte comando para criar um arquivo de chave do host.

sudo ssh-keygen -f host.key

Gere um arquivo de solicitação de certificado

Este comando cria um arquivo de solicitação de certificado. Um arquivo de solicitação de certificado contém informações sobre sua organização que serão usadas no certificado SSL.

sudo openssl req -new -key host.key -out request.csr

Crie o certificado SSL

Crie um certificado SSL autoassinado usando o arquivo de solicitação.

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

Configurar o Apache

Crie um backup de /etc/apache2/httpd.conf.

Anexe o conteúdo do /etc/apache2/extra/httpd-ssl.conf ao /etc/apache2/httpd.conf.

Em /etc/apache2/httpd.conf, certifique-se de que o carregamento de SSL esteja ativado (remova o #)

LoadModule ssl_module libexec/apache2/mod_ssl.so

Além disso, edite a seção SSL para usar o novo certificado.

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/host.key

Verifique a configuração e reinicie o Apache para testar o novo certificado.

sudo apachectl configtest
sudo apachectl restart

Graças ao Casa de Ding e Matt Langtree para fornecer grande parte dessa solução.

yanokwa
fonte
Obrigado pela sua resposta, mas isso parece com as instruções padrão para o Snow Leopard (e anteriores). Você já tentou isso no Lion? porque eu não acho que funciona: - /
Snips
Sim. correu no leão e funciona. as preferências de compartilhamento não mostram que o servidor está ativado, mas está.
yanokwa
1

O problema acima é que uma senha ou passphrase é exigida do apache e não pode ser obtida. Portanto, o apache não será executado ou inicializado!

O que é necessário é criar um "nenhuma senha" chave de host com este comando:

openssl rsa -in host.key -out host.nopass.key

... e direcionar a chave ssl do apache para o host.nopass.key que gera.

Quando fiz isso, meu Lion Apache foi executado com sucesso.

Chase Holden
fonte
A emenda de Chase funcionou para mim! Tive que "sudo": sudo openssl rsa -no host.key -out host.nopass.key