bg-tutorials

Como Instalar um Certificado SSL em Servidores macOS

Este tutorial explica como instalar um certificado SSL no macOS. Ele aborda a importação do seu certificado e do pacote CA com o Keychain Access, o fluxo de trabalho mais antigo do macOS Server (Server.app) que muitas configurações existentes ainda utilizam, e o caminho realista para as versões atuais do macOS onde o Server.app já não existe.

Importante: A Apple descontinuou o produto macOS Server (Server.app). Os serviços de web, e-mail e a maioria dos serviços de hospedagem foram removidos em 2018, e a aplicação em si foi retirada em abril de 2022. A última versão, 5.12.2, funciona apenas até ao macOS Monterey. Os passos abaixo abrangem tanto o método antigo do Server.app como a abordagem atual.

Gerar um código CSR

Para ativar o seu certificado SSL, deve enviar detalhes sobre o seu domínio e organização à Autoridade Certificadora (CA). Este passo padrão chama-se Certificate Signing Request, ou CSR. Tem duas opções:

Envie o CSR durante o seu pedido. A CA irá validar o seu pedido e, uma vez aprovado, assinar e emitir o certificado. Receberá os ficheiros do certificado por e-mail. Depois disso, continue com a instalação abaixo.

Instalar um certificado SSL no macOS

Os passos abaixo seguem o fluxo de trabalho original do macOS Server (Server.app): importar o pacote CA e o certificado com o Keychain Access, depois atribuir o certificado aos serviços na aplicação Server. Se o seu Mac já não tiver a aplicação Server, avance para macOS atual: sem Server.app após o Passo 2, uma vez que a importação no Keychain continua a aplicar-se.

Passo 1: Prepare os ficheiros do seu certificado

Descarregue o arquivo ZIP que a CA lhe enviou e extraia-o. Deverá ter um ficheiro com a extensão .crt (o seu certificado principal) e um ficheiro com a extensão .ca-bundle (os certificados raiz e intermediários, também chamados de pacote CA). Também precisará da chave privada que criou com o CSR.

Passo 2: Adicione o ficheiro .ca-bundle ao Keychain Access

Comece pelo pacote CA. Este contém os certificados raiz e intermediários que os navegadores e clientes utilizam para construir uma cadeia de confiança até uma raiz fidedigna. Sem eles, os visitantes podem ver um aviso de “não seguro” ou de certificado não fidedigno.

  1. Localize o ficheiro com a extensão .ca-bundle.
  2. Abra o Keychain Access (procure-o com o Spotlight, ou encontre-o em Applications > Utilities).
  3. Arraste e solte o ficheiro .ca-bundle na janela do Keychain Access. Adicione-o ao keychain System para que se aplique a todos os utilizadores e serviços.
  4. Para confirmar a importação, digite o nome da sua CA na barra de pesquisa. Deverá ver listados os certificados intermediários e o certificado raiz.

Pode fazer o mesmo através do Terminal, o que é útil num servidor sem interface gráfica ou remoto. Isto importa o pacote para o keychain do sistema:

sudo security import yourdomain.ca-bundle -k /Library/Keychains/System.keychain

Passo 3: Adicione o seu certificado principal (Server.app legado)

Este passo utiliza a aplicação descontinuada Server.app. Se o seu Mac já não a tiver, consulte a próxima secção em vez disso.

  1. Abra a aplicação Server e vá a Server > Certificates.
  2. Na página principal, clique duas vezes no certificado pendente (o que foi criado quando gerou o CSR).
  3. Na janela que se abre, arraste e solte o seu ficheiro .crt, depois clique em OK.
  4. Um certificado válido agora mostra o nome do emissor e a data de expiração.

Passo 4: Atribua o certificado aos seus serviços (Server.app legado)

Na aplicação Server, encontre a definição Secure services using. Use o menu suspenso para selecionar o seu certificado SSL. Para atribuí-lo a serviços específicos, como partilha de ficheiros ou e-mail, clique em Custom e escolha os serviços que pretende proteger. Quando terminar, clique em OK.

O seu certificado SSL está agora instalado. Para confirmar o resultado e verificar problemas comuns, use o nosso SSL Checker.

macOS atual: sem Server.app (use o Keychain com Apache ou nginx)

Uma vez que a Apple retirou o Server.app, as versões atuais do macOS não têm o ecrã Server > Certificates nem a atribuição de certificados por serviço. A importação do certificado para o Keychain Access (Passo 2) continua a aplicar-se para a confiança do sistema, mas para servir HTTPS deve configurar um servidor web diretamente. O macOS vem com o Apache (httpd) incluído, e o nginx está disponível através do Homebrew. Coloque o seu certificado e chave onde o servidor os possa ler, por exemplo em /etc/ssl/, e mantenha a chave privada legível apenas pelo root.

Opção A: Apache incluído (httpd)

Edite /etc/apache2/httpd.conf e remova o # inicial destas linhas para que os módulos SSL e a configuração SSL sejam carregados:

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf

Primeiro, crie um ficheiro de cadeia completa (o seu certificado seguido do pacote CA), que o SSLCertificateFile espera no Apache 2.4.8 e versões mais recentes:

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

Depois edite /etc/apache2/extra/httpd-ssl.conf e certifique-se de que escuta na porta 443. Este ficheiro já vem com um bloco padrão <VirtualHost _default_:443> com um certificado autoassinado, portanto edite esse bloco ou adicione o virtual host abaixo e comente o padrão, para evitar dois hosts na porta 443:

<VirtualHost *:443>
    ServerName www.yourdomain.com
    DocumentRoot "/Library/WebServer/Documents"

    SSLEngine on
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off
</VirtualHost>

Os caminhos acima assumem que a chave privada está em /etc/ssl/private/, que pode não existir no macOS por predefinição. Crie-o primeiro e mantenha a chave legível apenas pelo root:

sudo mkdir -p /etc/ssl/private
sudo chmod 600 /etc/ssl/private/yourdomain.key

Teste a configuração antes de reiniciar, depois reinicie o Apache:

sudo apachectl configtest
sudo apachectl restart

Deverá ver Syntax OK no teste. Se receber um erro, corrija-o antes de reiniciar para que o servidor não falhe ao iniciar.

Opção B: nginx

Se utilizar o nginx, faça referência ao ficheiro de cadeia completa e à chave no seu bloco de servidor, depois recarregue:

server {
    listen 443 ssl;
    server_name www.yourdomain.com;

    ssl_certificate     /etc/ssl/yourdomain_fullchain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
}
sudo nginx -t
sudo nginx -s reload

Para a gestão de configuração em várias Macs (a função que o antigo Profile Manager desempenhava), use uma solução MDM atual em vez disso. Para verificar o certificado instalado a partir de qualquer máquina, use o nosso SSL Checker.

Perguntas frequentes

O macOS Server ainda está disponível?

Não. A Apple removeu a maioria dos serviços de hospedagem do macOS Server em 2018 e descontinuou a própria aplicação em abril de 2022. A versão final, 5.12.2, funciona apenas até ao macOS Monterey e não é suportada em versões mais recentes do macOS. No macOS atual, os certificados são importados para o Keychain Access e o Apache ou nginx são configurados diretamente, em vez de usar a aplicação Server.

Como instalo um certificado SSL no macOS sem a aplicação Server?

Importe o pacote CA e o seu certificado para o Keychain Access para que o sistema confie na cadeia, depois aponte o seu servidor web para o certificado e a chave privada. O macOS inclui o Apache (configurado em /etc/apache2/), e pode instalar o nginx através do Homebrew. Defina SSLCertificateFile e SSLCertificateKeyFile no Apache, ou ssl_certificate e ssl_certificate_key no nginx, depois teste a configuração e reinicie o servidor.

Onde é que o macOS armazena os certificados SSL?

Os certificados fidedignos ficam em keychains geridos pelo Keychain Access. Os certificados de todo o sistema ficam no keychain System, armazenado em /Library/Keychains/System.keychain. Os ficheiros de certificado e de chave privada que o seu servidor web lê podem ser colocados noutro local, por exemplo em /etc/ssl/, desde que a configuração do servidor aponte para eles e a chave permaneça legível apenas pelo root.

Preciso de instalar o pacote CA no macOS?

Sim. O pacote CA contém os certificados intermediários e raiz que permitem aos navegadores e clientes construir uma cadeia de confiança completa. Se o ignorar, alguns visitantes verão um aviso de cadeia de certificados não fidedigna ou incompleta. Importe o ficheiro .ca-bundle para o Keychain Access, ou concatene-o após o seu certificado num único ficheiro de cadeia completa para o Apache ou nginx.

Como verifico se o certificado está instalado corretamente?

Abra o seu site num navegador e verifique o cadeado, ou consulte o servidor a partir do Terminal com o OpenSSL para ler o certificado que ele serve:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Isto imprime o emissor e as datas de validade. Também pode executar uma verificação externa completa com o nosso SSL Checker.

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.