Skip to content
Geek is the Way!
Menu
  • Forums
  • Sobre o blog
  • Contato
  • Português
    • English
Menu

Instale certificados Let’s Encrypt no Supermicro X10 através do Synology com agendamento

Posted on 15/02/202130/12/2024 by Thiago Crepaldi

Recentemente adicionei um Supermicro X10DRi-T4+ ao meu homelab e uma ideia natural foi instalar um certificado SSL do Let’s Encrypt e substituir o original auto-assinado. Para isso, tive que adaptar alguns scripts python [1] [2] publicados por Jari Turkia. Nenhum deles funcionou no Supermicro X10DRi-T4+, mas não foi difícil consertá-los, então aqui vamos nós!

AVISO Este post foi traduzido automaticamente via software e revisado nas coxas por mim. É possível que as descrições textuais sejam diferentes das interfaces gráficas. Além disso, algumas capturas de tela podem estar em inglês enquanto as instruções em português. Recomendo muita hora nessa calma e fazer as adaptações necessárias

Cinto de utilidades homelab para o resgate

Como este post se baseia em scripts razoavelmente complexos, eu os adicionei ao repositório Github Homelab Utility Belt, que é público! O repo tem dois scripts que vamos usar neste post:

  1. Um script Python que instala o certificado SSL na Interface IPMI do Supermicro
  2. Um script bash que uso no Synology para disparar a substituição, através do programador de tarefas

Este último usa o primeiro, é claro!

Testando o script do atualizador do certificado IPMI

Embora queremos usar o script Bash para automação, precisamos verificar se o script Python é compatível com o seu Supermicro. Este script só foi testado em Supermicro X10DRi-T4+, mas talvez você tenha sorte. A versão original tinha código para suportar placas baseadas no modelo X11, mas eu apaguei dessa versão porque eu não podia testar as modificações e atestar o funcionamento!

Para começar, clone homelab utility belt (também conhecido como HUB) e instale suas dependências:

$ git clone https://github.com/thiagocrepaldi/homelab-utility-belt
$ cd homelab-utility-belt/supermicro/ipmi-update
$ pip install -r requirements.txt

Em seguida, execute python3 ipmi-updater.py --help para obter ajuda de como usar o script. A saída seria algo como:

usage: ipmi-updater.py [-h] --ipmi-url IPMI_URL --key-file KEY_FILE --cert-file CERT_FILE --username USERNAME --password PASSWORD [--no-reboot] [-log-level {0,1,2}]

Update Supermicro IPMI SSL certificate

optional arguments:
  -h, --help            show this help message and exit
  --ipmi-url IPMI_URL   Supermicro IPMI 2.0 URL
  --key-file KEY_FILE   X.509 Private key filename
  --cert-file CERT_FILE
                        X.509 Certificate filename
  --username USERNAME   IPMI username with admin access
  --password PASSWORD   IPMI user password
  --no-reboot           The default is to reboot the IPMI after upload for the change to take effect.
  --log-level {0,1,2}   Log level (0: quiet, 1: info, 2: debug)

Um exemplo de como usar o script é:

$ python3 supermicro/ipmi-updater/ipmi-updater.py --ipmi-url https://mysupermicro --username ADMIN --password ADMIN --key-file /path/to/private_key.pem --cert-file /path/to/cert_file.cert --log-level=1

Supondo que você inseriu todos os argumentos corretamente, o nível de log está definido como 1, a saída para um IPMI compatível seria:

************************************************************
Authenticating on Supermicro IPMI!
************************************************************
Login succeeded.

************************************************************ 
Fetching current IPMI certificate!
************************************************************
There exists a certificate, which is valid until: ...

************************************************************
Uploading new IPMI certificate! 
************************************************************
New IPMI certificate was uploaded.

************************************************************ 
Checking new IPMI certificate was properly uploaded!
************************************************************ 
New IPMI certificate is valid.

************************************************************
Fetching new IPMI certificate!
************************************************************
After upload, there exists a certificate, which is valid until: YYY

************************************************************
Rebooting IPMI to apply changes!
************************************************************

************************************************************
All done!
************************************************************  

É possível que sua placa X10 não seja compatível, o que, em seguida, retornaria um erro em uma das APIs REST que este script invoca. Sugiro que você execute cada um deles individualmente e depure seu caminho. Se esse for o seu caso, você pode deixar cair uma mensagem e eu posso tentar ajudar, mas como eu não tenho o seu hardware, não há garantias lá!

Automatizando a atualização do certificado através do Programador de Tarefas do NAS Synology

Se tudo correu bem na etapa anterior, seu Supermicro reiniciará. Assim que retornar, o novo certificado SSL estará em uso. No entanto, como você sabe, certificados Let’s Encrypt expiram a cada 3 meses, então precisamos substituí-los periodicamente. Para esta tarefa, uso o NAS Synology para copiar os certificados do meu pfSense, que emite os certificados para o meu homelab inteiro.

A partir deste ponto, estou assumindo que você possui um NAS Synology, emite seus certificados Let’s Encrypt no pfSense e, finalmente, os copia para o NAS. Deve ser fácil adaptar este fluxo de trabalho para seu próprio uso.

Instalação do certificado Let’s Encrypt no Supermicro em um cronograma

Volte para o Painel de Controle >> Programador de Tarefas >> Criar >> Tarefa agendada >> script definido pelo usuário mais uma vez e faça o seguinte:

Geral

  • Tarefa: Instalar certificado no Supermicro
  • Usuário: root

Programação

  • Executar nos seguintes dias: Escolha o mesmo dia da tarefa que copia os certificados para o seu NAS
  • Hora da primeira execução: Escolha um tempo depois dessa tarefa
  • Frequência: Todos os dias

Configurações de tarefas

Script definido pelo usuário: use o seguinte modelo para substituir os certificados existentes com os novos

# Suas variáveis de ambiente
PYTHON=python3
IPMI_UPDATER_DIR="/tmp/ipmi-updater/"
IPMI_UPDATER_SH="${IPMI_UPDATER_DIR}/supermicro-ipmi-updater.sh"
SUPERMICRO_CERT="/volume1/Supermicro/Supermicro.crt"
SUPERMICRO_KEY="/volume1/Supermicro/Supermicro.key"
SUPERMICRO_ADMIN="ADMIN"
SUPERMICRO_PASS="ADMIN"
SUPERMICRO_URL="https://mysupermicro.lan.example.com"

# Preparação de pasta temporária para updater IPMI
rm -r ${IPMI_UPDATER_DIR}/* || mkdir -p ${IPMI_UPDATER_DIR}

# Baixando script do updater IPMI
wget https://raw.githubusercontent.com/thiagocrepaldi/homelab-utility-belt/main/synology/supermicro-ipmi-updater.sh -O ${IPMI_UPDATER_SH}

# Atualizar certificado IPMI
bash ${IPMI_UPDATER_SH} -p ${PYTHON} -i ${IPMI_UPDATER_DIR} -c ${SUPERMICRO_CERT} -k ${SUPERMICRO_KEY} -a ${SUPERMICRO_ADMIN} -s ${SUPERMICRO_PASS} -u ${SUPERMICRO_URL}

Clique em OK para criar a tarefa agendada. Por fim, clique em Executar para instalar certificados. É isso!

Compartilhe isso:

  • Tweet

Related

Deixe uma respostaCancelar resposta

LIKED? SUPPORT IT :)

Buy Me a Coffee


Pesquisa


Categorias

  • Aleatório (3)
  • Cozinhando (1)
  • Homelab (50)
    • APC UPS (5)
    • Compras (1)
    • NAS Synology (7)
    • pfSense (33)
    • Proxmox (4)
    • Supermicro (1)
    • Ubiquiti (4)
    • UDM Pro (4)
  • Wordpress (1)

Tag

ambiente virtual proxmox (3) aplicativo apt-get (2) Bloqueio baseado em DNS (DNSBL) (2) Certificado de Autorização (CA) (2) certificados (5) Certificados Let's Encrypt (5) controlador unifi (2) DNS dinâmico (2) DNS Dinâmico (DDNS) (3) Dsistribuição Linux Debian (2) Equipamento UDM-Pro (5) Linha Unifi (3) monitoramento (2) No-Break APC (5) Nobreak UPS (5) Nuvem CloudFlare (2) Placa APC AP9631 (3) Plataforma PBS (3) Plataforma pfSense (35) Plataforma Proxmox (3) Plataforma PVE (3) Plataforma Synology (6) privacidade (2) Protocolo LDAP (2) Protocolo SNMP (3) Protocolo SNMPv1 (3) Protocolo SSH (4) Protocolo SSL (5) Rede de Computadores (14) Redes VLAN (4) Rede VPN (8) Rede WiFi (4) rev202207br (54) Roteamento (2) segurança (14) Segurança com Firewall (7) Servidor de Backup Proxmox (3) servidor vpn (2) Serviço DNS (3) Serviço GMail (2) Serviço NMC (2) Serviço pfBlockerNG (2) Sistema Operacional DSM (6) sub-rede (2) Tarefas cron (2)

Ver também

Política de privacidade

Mapa do site

©2025 Geek is the Way! | Design by Superb