OSX Server用のget_cert.shスクリプトのCertbotエラーの自動化[閉じる]

OSX Server用のget_cert.shスクリプトのCertbotエラーの自動化[閉じる]

現在、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

3番目の問題があり、次のようにエラーが発生します。

Letsencrypt_sslcert.p12: ファイルまたはディレクトリ ve/mdm.school.domain がありませんが、このエラーは 2 番目のエラーに関連しているようです。

私は今混乱しています。ディレクトリが正しく設定されています。必須ファイルの「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を削除することです。

おすすめ記事