Neste artigo vamos instalar certificados SSL Let’s Encrypt em um NAS Synology mas de um jeito diferente! Os certificados são, na verdade, emitidos pelo pfSense, que está na borda da Internet, e depois reutilizados pela Synology NAS.
Configure pfSense
Em suma, você tem que usar o pfSense para emitir um certificado para o Synology, copiar o certificado para uma pasta do Synology e, em seguida, configurar o DSM para usá-lo. Como uma etapa adicional, configuraremos um tarefa agendada para que os certificados sejam copiados e reinstalados periodicamente para evitar reconfiguração manual quando o certificado Let’s Encrypt expirar.
Supondo que você tenha seguido o tutorial para criar o certificado para o Synology no seu pfSense, temos que exportá-lo no pfSense e importá-lo no DSM.
No seu pfSense, vá para o Sistema >> Gerente de Certificados >> Certificados. Você deve ver uma lista de certificados, incluindo todos emitidos pelo Let’s Encrypt. Encontre o que foi criado para a Synology, clique no Exportar certificado para baixar um arquivo com extensão *.crt e clique Exportar chave para baixar um arquivo com extensão *.key . Isso é tudo que você precisa do seu pfSense.
Consideração para roteadores em cascata
Você deve estar se perguntando o que temos que fazer para esse tutorial funcionar, quando o Synology está atrás de dois roteadores como descrito neste post. Felizmente, não temos que fazer nada. Tudo deve funcionar normalmente, pois os dispositivos atrás dos roteadores em cascata têm acesso direto a ambos os roteadores. A recíproca não é verdadeira, no entanto, o que significa que os dispositivos conectados ao primeiro roteador (o mais próximo da Internet) não podem se conectar aos dispositivos atrás do segundo roteador. Felizmente esse não é o nosso cenário 🙂
Configure o NAS Synology
Synology DSM vem com um certificado auto-assinado. Vamos instalar manualmente um certificado Let’s Encrypt e, em seguida, automatizar o processo de renovação através de tarefas programadas.
Importação Vamos criptografar certificado do pfSense
Agora que você tem seu certificado (arquivo *.crt) e key (*.key arquivo), vá para a sua Interface Web do Synology, faça login e clique em Painel de Controle >> Certificados de Segurança e clique em Adicionar.
Um assistente será apresentado. Como primeiro passo, escolha Adicionar um novo certificado e clique em Próximo.
Na tela seguinte, preencha uma descrição significativa (por exemplo, Certificado Let’s Encrypt do pfSense), escolha Importar um certificado e selecione Definir como certificado padrão para substituir o certificado auto-assinado existente e vá para a Próxima etapa.
No campo Chave privada, clique em Procurar e selecione o arquivo *.key exportado do pfSense. Para o campo Certificado, clique em Procurar e selecione seu arquivo *.crt . Deixe Certificado Intermediário em branco e clique em OK para finalizar.
Você deve ver o certificado instalado no Synology. Clique em Configurar, certifique-se de que seu novo certificado está selecionado para todos os Serviços e clique no botão Ok para salvar. Atualize seu navegador para ver seu novo certificado SSL em ação!
Automatizar a renovação do certificado
IMPORTANTE: Se você visitou este post antes, notou que os scripts que fazem a cópia e instalação dos certificados Let’s Encrypts não estão mais aqui. Em vez disso, estou usando o projeto Github homelab utility belt que tem este e outros scripts. Se você quer aprender como eles funcionam, leia o código aqui. A ideia é abstrair tais complexidades e facilitar a automatização de tarefas comuns!
Crie uma pasta de compartilhamento em Synology
Você deve ter notado que usou certificados armazenados em seu computador local para instalar no Synology. Isso é bom para uma configuração inicial, mas como o Let’s Encrypt expira a cada 90 dias, precisamos automatizar o processo de renovação.
Ainda no Synology, vá para Painel de Controle >> Pasta Compartilhada e clique em Criar. Isso apresentará um novo assistente, que deve ser preenchido da seguinte forma:
- Nome: LetsEncrypt
- Descrição: Vamos criptografar certificados do pfSense
- Localização: Aqui você seleciona o melhor volume. Volume 1 é o padrão.
- Ocultar esta pasta compartilhada em “Meus lugares de rede”: selecionado
- Ocultar subpastas e arquivos do usuário sem permissões: selecionado
- Ativar lixeira de reciclagem: selecionado
- Restringir o acesso apenas aos administradores: selecionado
Clique em Próximo, desmarque opção Encripte essa pasta. Clique no botão Próximo e desmarque ambos Habilitar o check-sum de dados e Habilitar a cota de pastas compartilhadas. Clique mais uma vez em Próximo para chegar à tela final, clique em Aplicar e, em seguida, clique em OK para terminar.
Importar certificado Let’s Encrypt para a Pasta Compartilhada do Synology periodicamente
Com uma pasta compartilhada, vamos criar uma tarefa programada que primeiro copiará os certificados SSL do pfSense na pasta compartilhada do Synology e, em seguida, instalá-lo em cima do certificado Atual Let’s Encrypt e, por fim, reiniciará o DSM. Vá para Painel de Controle >> Programador de Tarefas>> Criar >> Tarefa programada >> Script definido pelo usuário e faça o seguinte:
Geral
- Tarefa: Copiar LetsEncrypt Certficate do pfSense
- Usuário: Selecione root como usuário e certifique-se de que ele tem a chave SSH instalada que permite acesso ao pfSense
Agenda
- Execute nos seguintes dias: Escolha um dia da semana à sua escolha
- Hora da primeira execução: Escolha a hora, de preferência quando você estiver dormindo e o dispositivo ligado
- Frequência: Todos os dias
Configurações de tarefas
Script definido pelo usuário: use o modelo a seguir para criar uma pasta dentro da pasta compartilhada para cada certificado
########################################################
ESTE É O ÚNICO LUGAR QUE VOCÊ PRECISA EDITAR
########################################################
LETSENCRYPT_SHARE="/volume1/LetsEncrypt"
CERTIFICATE_NAME="SynologyLE"
PFSENSE_PORT="22"
PFSENSE_USER="síndicos"
PFSENSE_HOSTNAME="mypfsense.lan.example.com"
########################################################
Você não precisa se preocupar com o código abaixo
########################################################
# Baixando scripts de importador de certificados LetsEncrypt
cd ${LETSENCRYPT_SHARE}
CERT_INSTALLER_SCRIPT="install_letsencrypt_cert_from_pfsense.sh"
CERT_COPY_SCRIPT="copy_letsencrypt_cert_from_pfsense.sh"
wget https://raw.githubusercontent.com/thiagocrepaldi/homelab-utility-belt/main/synology/install_letsencrypt_cert_from_pfsense.sh -O ${CERT_INSTALLER_SCRIPT}
wget https://raw.githubusercontent.com/thiagocrepaldi/homelab-utility-belt/main/synology/copy_letsencrypt_cert_from_pfsense.sh -O ${CERT_COPY_SCRIPT}
# Importe um novo certificado de sinatologia
bash ${CERT_COPY_SCRIPT} -s ${LETSENCRYPT_SHARE} -n ${CERTIFICATE_NAME} -p ${PFSENSE_PORT} -u ${PFSENSE_USER} -h ${PFSENSE_HOSTNAME}
bash ${CERT_INSTALLER_SCRIPT} -s ${LETSENCRYPT_SHARE} -n ${CERTIFICATE_NAME}
# Remova scripts para baixar a versão mais recente da próxima vez
rm -f ${CERT_INSTALLER_SCRIPT} ${CERT_COPY_SCRIPT}
Depois de clicar em OK , sua tarefa será criada. Teste-a, clique em Executar e após alguns segundos (o servidor web do Synology será reiniciado), vá para Estação de Arquivo e verifique se o certificado foi copiado na pasta compartilhada. Você também pode verificar que seu navegador agora usa o novo certificado. É isso!