Eu tenho alguns servidores Mac OS X 10.6.8 Server que executam uma pilha personalizada AMP255 (Apache 2.x, MySQL 5.xe PHP 5.x) instalada usando MacPorts. Temos muitos servidores Mac OS X Server e geralmente instalamos SSL certs via Server Admin e eles "simplesmente funcionam" nos serviços internos, no entanto, esses servidores web sempre tiveram SSL certs instalados em um local não padrão e usado apenas para o Apache.
Para encurtar a história, estamos tentando padronizar essa parte de nossa administração e instalar certs via Server Admin, mas nos deparamos com o seguinte problema: quando os certs são instalados via Server Admin e referenciados em nossos arquivos conf Apache, o Apache Em seguida, solicita uma senha ao tentar iniciar. Não parece ser qualquer senha que conhecemos, certamente não as senhas de admin ou chaves! Adicionamos o usuário _www
ao certusers
(principalmente para garantir que eles tenham acesso adequado à chave privada em /etc/certificates/
).
Assim, com os certs instalados personalizados, temos os seguintes arquivos (basicamente colados da empresa em que compramos nossos certificados):
-rw-r--r-- 1 root admin 1395 Apr 10 11:22 *.domain.tld.ca
-rw-r--r-- 1 root admin 1656 Apr 10 11:21 *.domain.tld.cert
-rw-r--r-- 1 root admin 1680 Apr 10 11:22 *.domain.tld.key
E o seguinte no VirtualHost
in /opt/local/apache2/conf/extra/httpd-ssl.conf
:
SSLCertificateFile /path/to/certs/*.domain.tld.cert
SSLCertificateKeyFile /path/to/certs/*.domain.tld.key
SSLCACertificateFile /path/to/certs/*.domain.tld.ca
Esta configuração funciona normalmente.
Se usarmos os certs instalados via Server Admin, ambos Server Admin & Chaveiro mostra como válido, eles estão instalados em /etc/certificates/
da seguinte forma:
-rw-r--r-- 1 root wheel 1655 Apr 9 13:44 *.domain.tld.SOMELONGHASH.cert.pem
-rw-r--r-- 1 root wheel 4266 Apr 9 13:44 *.domain.tld.SOMELONGHASH.chain.pem
-rw-r----- 1 root certusers 3406 Apr 9 13:44 *.domain.tld.SOMELONGHASH.concat.pem
-rw-r----- 1 root certusers 1751 Apr 9 13:44 *.domain.tld.SOMELONGHASH.key.pem
E se substituirmos as linhas mencionadas acima em httpd-ssl.conf
pelo seguinte:
SSLCertificateFile /etc/certificates/*.domain.tld.SOMELONGHASH.cert.pem
SSLCertificateKeyFile /etc/certificates/*.domain.tld.SOMELONGHASH.key.pem
SSLCertificateChainFile /etc/certificates/*.domain.tld.SOMELONGHASH.chain.pem
Isso solicita a senha desconhecida. Eu também tentei httpd-ssl.conf
configurado da seguinte forma:
SSLCertificateFile /etc/certificates/*.domain.tld.SOMELONGHASH.cert.pem
SSLCertificateKeyFile /etc/certificates/*.domain.tld.SOMELONGHASH.key.pem
SSLCertificateChainFile /etc/certificates/*.domain.tld.SOMELONGHASH.concat.pem
E como:
SSLCertificateFile /etc/certificates/*.domain.tld.SOMELONGHASH.cert.pem
SSLCertificateKeyFile /etc/certificates/*.domain.tld.SOMELONGHASH.key.pem
SSLCACertificateFile /etc/certificates/*.domain.tld.SOMELONGHASH.chain.pem
Verificamos que o certificado está configurado para permitir que todos os aplicativos o acessem (no Assistente de Chaves). Um diff do /etc/certificates/*.domain.tld.SOMELONGHASH.key.pem
& *.domain.tld.key
arquivos mostram que o primeiro é criptografado e o segundo não, portanto, estamos assumindo que o Server Admin / Keychain Assistant está criptografando-os por algum motivo.
Eu sei que posso criar um arquivo de chave não criptografado da seguinte forma:
sudo openssl rsa -in /etc/certificates/*.domain.tld.SOMELONGHASH.key.pem -out /etc/certificates/*.domain.tld.SOMELONGHASH.key.no_password.pem
Mas não posso fazer isso sem digitar a senha. Pensei que poderia exportar uma cópia não criptografada da chave do Administrador de Chaves, mas não vejo essa opção (sem mencionar que as opções .pem
estão esmaecidas em todas as opções de exportação).
Qualquer ajuda seria muito apreciada.