nginx-proxy-manager renew SSL Cert "internal error"
手動進行nginx-proxy-manager 時, 系統跳出 "Internal Error", 無法更新憑證.
Solution:
在nginx-proxy-manager的目錄下(Docker), 會有一個資料夾letsencrypt/live
touch一個fix.sh 的shell.
vim {nginx-proxy-manger/path}/letsencrypt/live/fix.sh
chmod +x fix.sh
docker exec -it nginx-proxy-manger_app_1 /bin/sh
cd /etc/letsencrypt/live/ && ./fix.sh
fix.sh程式如複製貼上
#!/usr/bin/env bash
DELETE_ME=()
for i in $(find . -name "npm-*" -type d); do
pushd "${i}" &>/dev/null
RELATIVE_PATH=$(echo "${i}" | sed 's/\.\///g')
# find all regular (non symbolic link) files
for t in $(find . -name "*.pem" -type f); do
# remove ./ path prefix
FILE_TO_LINK=$(echo "${t}" | sed 's/\.\///g')
NEW_FILE_NAME=$(echo "${FILE_TO_LINK}" | sed 's/\./1\./g')
echo "${RELATIVE_PATH}/${FILE_TO_LINK} needs to be linked"
echo "Moving ${RELATIVE_PATH}/${FILE_TO_LINK} to ${RELATIVE_PATH}/${FILE_TO_LINK}.bak"
mv "${FILE_TO_LINK}" "${FILE_TO_LINK}".bak
DELETE_ME+=("${RELATIVE_PATH}/${FILE_TO_LINK}.bak")
echo "linking ../../archive/${RELATIVE_PATH}/${NEW_FILE_NAME} to ${RELATIVE_PATH}/${FILE_TO_LINK}"
ln -s ../../archive/"${RELATIVE_PATH}"/"${NEW_FILE_NAME}" "${FILE_TO_LINK}"
if [[ "$?" == 0 ]]; then
echo "success"
else
echo "failure"
fi
done
popd &>/dev/null
done
if [[ -n ${DELETE_ME} ]]; then
echo -e "\nOld *.pem files:\n"
echo "${DELETE_ME[*]}"
echo "Do you want to delete the old *.pem files? (y/n) "
read delete
if [[ "${delete}" == "y" || "${delete}" == "yes" ]]; then
for y in "${DELETE_ME[@]}"; do
rm "${y}"
done
fi
else
echo "Nothing to be done."
fi