Automatizando o erro do Certbot para o servidor OSX no script get_cert.sh [closed]

1

Olá pessoal e gurus,

Atualmente estou enfrentando um problema com a minha máquina Mac OS-X El Capitan ao executar o certbot (ou basicamente o letsencrypt).

Minha máquina é um mac mini, que supostamente está executando uma solução MDM com o letsencrypt como seu certificado SSL. Meu MDM está funcionando bem e eu só quero automatizar a renovação do certificado SSL via certbot.

Eu segui este guia para todo o set-up - Joshua Jung, Medium.com - configurando o mac mini OSX como MDM

Este é o meu arquivo de script - get-cert.sh

#!/bin/sh
DOMAIN="mdm.school.domain"
PEM_FOLDER="/etc/letsencrypt/live/${DOMAIN}/"
# Renew the certificate
# sudo certbot renew --quiet # old way, didn't work.
# new way below - 
# sudo certbot renew —-cert-name ${DOMAIN} -q
# Generate a passphrase
echo starting password
PASS=$(openssl rand -base64 45 | tr -d /=+ | cut -c -30)
echo finish password - looks like no problem.
# Transform the pem files into a p12 file
echo start openssl
sudo openssl pkcs12 -export -inkey "${PEM_FOLDER}privkey.pem" -in "${PEM_FOLDER}cert.pem" -certfile "${PEM_FOLDER}fullchain.pem" -out "${PEM_FOLDER}letsencrypt_sslcert.p12" -passout pass:$PASS
echo end openssl
# Import the p12 file into the keychain
echo start security import
sudo security import "${PEM_FOLDER}letsencrypt_sslcert.p12" -f pkcs12 -k /Library/Keychains/System.keychain -P $PASS -T /Applications/Server.app/Contents/ServerRoot/System/Library/CoreServices/ServerManagerDaemon.bundle/Contents/MacOS/servermgrd
echo end security import

Eu tenho dois problemas, na verdade.

Primeiro, enquanto eu posso renovar o certificado manualmente, ou seja, se eu inserir "sudo certbot renew", o certificado será renovado com sucesso. No entanto, se eu fosse para executar o comando através do script, o erro ocorre afirmando que há um erro de argumento.

-q / - quiet: argumento explícito ignorado '\ r'.

segundo, encontro erro com a importação openssl, onde o erro mostra:

arquivo de entrada cert.pemening /etc/letsencrypt/live/mdm.school.domain cert.pem: Nenhum arquivo ou diretório

eu tenho uma terceira edição, onde o erro ocorre conforme abaixo -

letsencrypt_sslcert.p12: nenhum arquivo ou diretório / mdm.school.domain mas acho que esse erro está relacionado ao segundo.

Estou perplexo no momento. Eu tenho os diretórios todos definidos corretamente. Eu dei permissão 0755 ou 0777 para os arquivos necessários na pasta "live" para todos os arquivos (.pem e .p12).

quando eu executo = sudo certificados certbot, eu tenho a informação de que a data de validade está definida para 89 dias depois. O caminho do certificado e o caminho da chave privada estão corretos para o local armazenado em - /etc/letsencrypt/live/mdm.school.domain/fullchain.pem e privkey.pem

Dito isto, o conteúdo da pasta live, como eu verifiquei usando finder, é essencialmente um link simbólico para a pasta de arquivos.

Também assegurei que o acesso à pasta de arquivo é dado a 0755 para privilégios.

Espero pegar nos cérebros dos gurus aqui.

    
por joke 12.09.2017 / 06:50

1 resposta

2

Eu resolvi esse problema. o problema está relacionado ao retorno do carro ao arquivo de script get-help.sh no final das linhas.

A melhor abordagem para determinar se o meu arquivo tem problemas no MAC OS-X é usar o editor vim e remover o ^ M no final das linhas onde as retornos de carro são encontradas.

    
por 11.10.2017 / 17:14