현재 Mac OS-X El Capitan 시스템에서 certbot(또는 기본적으로 LetsEncrypt)을 실행하는 데 문제가 있습니다.
내 컴퓨터는 Mac mini이고 MDM 솔루션을 실행하고 있으며 SSL 인증서로 LetsEncrypt를 사용한다고 합니다. 내 MDM이 제대로 작동하고 있습니다. certbot을 통해 SSL 인증서를 자동으로 갱신하고 싶습니다.
나는 전체 설정을 위해 이 가이드를 따랐습니다. Joshua Jung, Medium.com - mac mini OSX를 MDM으로 설정하기
이것은 내 스크립트 파일입니다 - 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
실제로 2배의 문제가 있습니다.
첫째, 인증서를 수동으로 갱신할 수 있지만 "sudo certbot renew"를 입력하면 인증서가 성공적으로 갱신됩니다. 그런데 스크립트를 통해 명령을 실행하면 매개변수 오류가 있다는 오류가 발생합니다.
-q/--quiet: 명시적 매개변수 "\r"을 무시합니다.
둘째, openssl을 가져올 때 오류가 발생했습니다.
cert.pemening 입력 파일 /etc/letsencrypt/live/mdm.school.domain cert.pem: 해당 파일 또는 디렉터리 없음 g
세 번째 문제가 있는데 다음과 같이 오류가 발생합니다.
Letsencrypt_sslcert.p12: 해당 파일이나 디렉터리 ve/mdm.school.domain이 없지만 이 오류는 두 번째 오류와 관련된 것 같습니다.
나는 지금 혼란스럽다. 디렉토리가 올바르게 설정되어 있습니다. 필수 파일에 대해 "live" 폴더에 있는 모든 파일(.pem 및 .p12)에 0755 또는 0777 권한을 부여했습니다.
= sudo certbot을 실행하면 내가 받는 인증서는 만료 날짜가 지금부터 89일로 설정된다는 것입니다. 인증서 경로와 개인 키 경로가 저장소 위치(/etc/letsencrypt/live/mdm.school.domain/fullchain.pem 및 privkey.pem)에 대해 정확합니다.
그런데 파인더를 사용하여 확인한 결과 라이브 폴더의 내용은 본질적으로 아카이브 폴더에 대한 심볼릭 링크입니다.
또한 보관 폴더 액세스에 0755 권한이 부여되었는지 확인했습니다.
답변1
이 문제를 해결했습니다. 문제는 get-help.sh 스크립트 파일의 행 끝에 있는 캐리지 리턴과 관련되어 있습니다.
MAC OS-X에서 내 파일에 문제가 있는지 확인하는 가장 좋은 방법은 vim 편집기를 사용하여 캐리지 리턴이 발견된 줄 끝에서 ^M을 제거하는 것입니다.