SoftEther ServerCertSet: importar a cadea renovada con vpncmd
Un ficheiro renovado non cambia a identidade do servidor SoftEther. Importe a cadea con ServerCertSet, enganche o paso de despregamento e lea o listener.
Certbot informa dunha renovación correcta, os ficheiros do disco levan datas novas e os clientes seguen atopando a identidade antiga. SoftEther garda o seu certificado SSL de servidor na súa propia configuración a nivel de servidor, así que un ficheiro novo no disco non cambia nada ata que se importan o certificado folla e a súa chave. A secuencia seguinte cobre unha importación manual, un envoltorio que se executa tras cada renovación e unha comprobación que le o que o listener presenta realmente. Cada paso deixa probas que pode comparar tras a seguinte renovación.
Un ficheiro renovado non cambia a identidade do servidor
A emisión e o despregamento son sucesos separados con formas de fallar separadas. O cliente ACME escribe ficheiros nun directorio de liñaxe e rexistra o éxito; SoftEther segue usando o certificado que se cargou por última vez na súa configuración. Por tanto, un estado de saída cero describe os ficheiros, non o servizo, e ambos poden discrepar mentres ninguén mire. Trate a importación como o paso de despregamento e a renovación como a súa entrada.
Esa distinción tamén explica o confuso medio fallo: o certificado antigo segue funcionando ata o seu vencemento, así que ao principio nada parece roto. Cando vence, todos os clientes fallan á vez, o que parece unha caída e non un paso de despregamento omitido. Comprobar a identidade presentada tras cada renovación converte esa sorpresa nunha observación rutineira.
Escolla o desafío que encaixe co listener
O certificado debe nomear o host que verifican os clientes, así que use o nome DNS público en lugar dunha etiqueta interna ou un enderezo. HTTP-01 necesita que o desafío se responda no porto 80 durante un momento, o que é un listener temporal e nunca un motivo para mover o porto propio de SoftEther. DNS-01 demostra o control mediante un rexistro e non necesita ningún HTTP entrante.
A renovación desatendida significa unha integración DNS automatizada con credenciais limitadas a unha soa zona, non un rexistro TXT escrito á man cada dous meses. Un comodín cambia o tipo de desafío, non a necesidade desa automatización. Decídao antes de que exista o primeiro certificado, porque cambiar o tipo de desafío despois implica tocar a configuración do cliente e a devasa á vez.
Manteña os artefactos en orde mentres está aquí. O certificado folla e os intermedios chegan como ficheiros separados e como un ficheiro de cadea combinado, a chave privada volve estar aparte, e a importación necesita a cadea coa súa chave correspondente, non un certificado público por si só.
Importe a cadea a nivel de servidor
Faga unha copia de seguridade da configuración do servidor e confirme que aínda pode chegar á interface de xestión antes de tocar o certificado. Conéctese como administrador do servidor e non como administrador do Virtual Hub, porque o certificado pertence ao obxecto do servidor. Despois cargue a cadea e a chave por ruta absoluta, desde ficheiros que a conta que executa a orde poida ler. Teña en conta que as rutas son absolutas porque a orde as resolve desde o directorio de traballo do proceso que executou vpncmd:
ServerCertSet /LOADCERT:/etc/letsencrypt/live/vpn.example.com/fullchain.pem /LOADKEY:/etc/letsencrypt/live/vpn.example.com/privkey.pemLea a saída da orde en lugar de supoñer o éxito, e despois volva ler a cadea en lugar de confiar no ficheiro que pasou. A fronteira entre as compilacións que importan un paquete PEM completo e as que só toman o primeiro certificado non está documentada nun só lugar, así que a comprobación é o que o resolve para a compilación que ten diante. Conte os certificados que presenta o listener; un certificado folla sen intermedios é a sinatura dun importador que só consumiu o primeiro bloque.
Manteña a chave importada lexible só pola conta que executa o servidor, e manteña o contrasinal de xestión fóra do historial do intérprete. Para esta primeira importación, escriba o contrasinal no aviso en lugar de pasalo como argumento da orde. Eses dous hábitos non custan nada e eliminan a forma máis común de que un despregamento de certificados filtre algo que debía protexer. Fágao antes da primeira importación, non despois.
Enganche o despregamento, non a renovación
Cando a importación manual funcione, poña exactamente eses pasos nun envoltorio pequeno e chámeo desde o cliente ACME tras unha renovación correcta. Certbot establece RENEWED_LINEAGE e RENEWED_DOMAINS para o hook, así que o envoltorio pode actuar sobre un certificado nunha máquina que xestiona varios. Filtre pola liñaxe en lugar de reaccionar a cada renovación do host. O envoltorio é código de despregamento que se executa cos privilexios do servidor, así que revíseo como calquera outro script nesa posición.
certbot renew --deploy-hook /usr/local/sbin/softether-deploy.shUn hook que se executa desatendido necesita o seu propio almacén protexido de credenciais e un sinal de fallo que chegue a unha persoa. Se a emisión ten éxito e a importación falla, tente a importación de novo en lugar de pedir outro certificado, porque unha segunda solicitude esconde o defecto de despregamento tras un ficheiro novo. A documentación de renovación de Certbot deixa claro que unha execución que non actualiza nada é un resultado normal, así que o hook é o que distingue ambas as cousas.
Compare a cadea presentada co ficheiro
Lea o listener, non o disco. Conéctese ao porto orientado aos clientes co nome de servidor que usan os clientes e despois compare a impresión dixital e a cadea entregada coa liñaxe que instalou o hook. Dúas ordes cóbreno, e a primeira tamén mostra se chegan intermedios:
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | grep -c 'BEGIN CERTIFICATE'
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -dates -fingerprint -sha256Despois faga unha conexión de cliente nova, porque as sesións establecidas antes da importación autenticáronse contra a identidade anterior e non proban nada sobre a nova. Se os clientes fixan o certificado folla antigo, necesitan unha actualización coordinada mesmo cando a cadea pública é válida, e esa tarefa pertence ao mesmo runbook que a renovación. Un proxy inverso diante do servizo pode presentar un certificado bo mentres o listener VPN aínda ten o vello, e por iso a comprobación debe nomear o porto ao que os clientes chegan de verdade. Anote a impresión dixital ao lado da data de renovación, para que a seguinte comparación sexa unha comprobación e non un acto de memoria.