certbot 플러그인을 설치하는 방법은 certbot 자체를 설치 한 방법에 따라 다릅니다. 일부 패키지 관리자 (apt, rpm, brew ...)를 사용하여 certbot을 설치 한 경우 해당 패키지 관리자의 저장소에서 호환 가능한 certbot 플러그인을 찾아야합니다.
Encrypt는 대체 설치 방법 인 certbot-auto 래퍼도 지원합니다. 이 랩퍼는 개인 Python 가상 설치 (일반적으로 /opt/eff.org/certbot/venv
)를 작성하고 해당 디렉토리에 certbot을 설치합니다. certbot-auto의 좋은 기능은 certbot 클라이언트를 자동으로 최신 상태로 유지한다는 것입니다. 주요 단점은 공식적으로 플러그인 설치를 지원 하지 않는다는 것입니다 (즉, 기본적으로 설치되는 4 개의 플러그인 제외).
Ryan G의 솔루션에 설명 된 대로이 제한을 해결하는 것은 쉽습니다 . 그러나 certbot-auto가 자체적으로 업데이트 될 때마다 해당 절차를 통해 설치된 플러그인이 손실되므로 임의의 갱신이 실패 할 수 있습니다. 이 문제로 인해 일부 인증서가 거의 만료되는 몇 가지 상황이있었습니다. 여러 티켓이 certbot의 버그 추적기에서이 문제에 대해 설명하고 팀은 문제를 인정하지만 실제로 문제가 해결되기까지 아직 멀지 않은 것으로 보입니다.
따라서 자동 설정에서 certbot-auto를 사용하는 경우 certbot-auto의 자체 업데이트를 방지하거나 (로 실행하여 --no-self-upgrade
) certbot이 업데이트 될 때마다 필요한 플러그인이 자동으로 다시 설치되도록하는 전략을 구현하는 것이 바람직합니다.
실제로 필요한 플러그인이 설치되도록하는 가능한 해결책은 certbot-auto 주위에 래퍼를 추가하는 것입니다. 그 래퍼는 본질적으로 다음과 같이 보일 수 있습니다.
#!/bin/bash
# The list of plugins to be installed
CERTBOT_PLUGINS="certbot-dns-route53"
# Force the venv directory to be where we can easily find it
export VENV_PATH="/opt/eff.org/certbot/venv"
# Force certbot-auto to be where we expect it to be
export CERTBOT_AUTO="/usr/local/bin/certbot-auto-upstream"
# Force certbot-auto to bootstrap or upgrade itself, but do no more
"${CERTBOT_AUTO}" --install-only "$@"
# Check if required plugins are installed; install them if they are missing
(
cd ${VENV_PATH}
source bin/activate
for plugin in $CERTBOT_PLUGINS ; do
if ! pip show -q "$plugin" ; then
pip install "$plugin"
fi
done
deactivate
)
# Execute the actual certbot command
"${VENV_PATH}/bin/letsencrypt" "$@"
나는 그 래퍼의 더 완전한 버전을 여기에서 사용할 수있게했다 ; 더 긴 버전과의 유일한 차이점은 랩퍼가 루트로 실행되고 --help
인수를 올바르게 처리한다는 것 입니다.
해당 랩퍼를 설치하려면에 공식 certbot-auto
프로그램을 다운로드 /usr/local/bin/certbot-auto-upstream
하고 랩퍼를에 복사하십시오 /usr/local/bin/certbot-auto
. 두 파일 모두 적절한 권한을 가지고 있는지 확인하십시오 ( chown root:root /usr/local/bin/certbot-auto*
, chmod 755 /usr/local/bin/certbot-auto*
). 랩퍼 파일에서 행에 CERTBOT_PLUGINS="..."
실제로 필요한 플러그인 목록이 포함되어 있는지 확인하십시오 . 그리고 그게 다야. certbot-auto
이전과 마찬가지로 명령을 사용 하고 certbot-auto-upstream
파일을 잊어 버리십시오 .