cron 작업에서 letsencrypt.org 인증서를 갱신하는 방법은 무엇입니까?


0

며칠 이래 웹 서버의 letsencrypt.org 인증서를 갱신하는 데 문제가 있습니다.

letsencrypt 도구 문서가 좋은지 나쁜지 수 있습니다 - 즉,이 때문에 말을하는 것은 불가능하다 certbot, letsencrypt, certbot-auto, letsencrypt-auto, /etc/certbot설치할 수있는 또는 모든 어떻게 든 일을 주장하고 모든 실패 소스 디렉토리 또는 inexisting 다양한 하위 명령에서 실행 무의미한 피드백의 터닝 휠이 다음과 같이 다양하게 변형 된 종합적인 출력 :

  • Use of --agree-dev-preview is deprecated. Saving debug log to /var/log/letsencrypt/letsencrypt.loghttps://github.com/letsencrypt/letsencrypt 의 마스터 브랜치의 HEAD에서 작동하지 않는 스크립트를 제공합니까?
  • Failed authorization procedure. [hostname] (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://[hostname]/.well-known/acme-challenge/JwhGtVHZ7x6pfBztDgYL-IRQXfa1JLwhAn84Hrzi_xo: Error getting validation data -코멘트가 필요하지 않습니다
  • Ubuntu 17.04 및 Apache2에 대한 https://certbot.eff.org/#ubuntutzesty-apache 의 공식 안내서는 다음으로 인해 실패합니다.

    Use of --agree-dev-preview is deprecated.
    Use of --agree-dev-preview is deprecated.
    Too many flags setting configurators/installers/authenticators 'webroot' -> 'apache'
    

    이것을 추구하는 데 어떤 의미가 있는지에 대한 단서가 없습니다.

https://community.letsencrypt.org/t/renew-all-certificate-using-cron/21162/6 는 그것을 설명하려고 시도하지만 SE 형식이 아닌 것으로는 실패합니다. 정보가 구식이며 언급 된 모든 내용이 모순됩니다.

man letsencrypt최소한 당신이하고있는 일을 이해하고 싶지는 않지만 컴퓨터 관리에 매우 도움이되는 경우 와 같은 문서 는 거의 사용할 수 없습니다 By default, it will attempt to use a webserver both for obtaining and installing the cert. ..

우분투 17.04를 사용하고 있습니다.


2
당신의 질문은 진창처럼 읽습니다. 나는 그것을 간소화하려고 노력했다. certbotPPA에서 사용하는 것으로 충분합니다. 그냥 전화하십시오 certbot renew. 어떤 특정 명령을 실행하려고했는지, 어떤 오류 메시지를 받았는지 표시해야합니다. 두 번째 오류와 관련하여 왜 "댓글이 필요하지 않습니까"? 조사 할 가치가 없습니까? 관련 스레드를 보셨습니까? 그리고 당신은 며칠 이후 갱신에 어려움을 겪고 있다고 말합니다 ...… 이전에 효과가 있었습니까? 무엇이 바뀌 었다고 생각하십니까?
slhck

답변:


0

내 서버는

# Renew Let's Encrypt cert
0  5    * * *   root     /usr/bin/certbot renew --quiet

(이것은 crontab의 우분투 풍미입니다). 지금까지 작동하는 것 같습니다. 나는 https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04 의 지침을 따르고 간단했습니다.


이것의 유일한 문제는 포트 443에서 실행되는 웹 서버가 있고 SSL 인증서가있는 이유는 무엇입니까?) 웹 서버를 중지하고 certbot을 호출하여 갱신하고 웹 서버를 다시 시작해야합니다. 이 작업을 수행하는 작은 래퍼 스크립트를 작성한 다음 cron에서 해당 스크립트를 호출합니다.
Ivanivan

위 지침 에 따르지 않아도됩니다. --apache 플러그인을 사용하여 인증서를 설치 했으므로 새로운 인증서가 사용되도록 Apache도 다시로드됩니다.
xenoid

letencrypt 또는 다른 항목이 내 아파치 구성을 혼란스럽게하지 않습니다 ... 독립형 전용. 새 인증서에 다른 포트를 사용하도록 설정할 수 있기를 원하므로 아파치 서버는 중지하는 대신 다시로드해야합니다. 물론 내 물건은 트래픽이 매우 적기 때문에 30 초 동안 웹 서버를 중지하는 것은 큰 문제가 아닙니다. 그것은 사람들이 알아야 할 것입니다 ....
Ivanivan

나는 그것을 얻지 못한다 ... 봇이 이것을 위해 서버를 사용하지 않기 때문에 새로운 인증서를 얻기 위해 서버를 중지 할 필요가 없으며 일단 인증서가 얻어지면 Apache가 다시로드됩니다. 그것을 고려하십시오. 새 인증서를 얻기 위해 Apache 구성에서 변경된 사항이 없습니다.
xenoid

certonly --standalone옵션을 사용 하므로 * : 443의 청취를 시도합니다. apache2 서버와 충돌하는 것은 유스 케이스에서 apache2 서버를 중지하고 인증서를 갱신하거나 새 인증서를 다시 시작해야한다는 것을 의미합니다.
ivanivan

0

그리고 비밀은 다음과 같습니다. Apache /etc/apache2/apache2.conf를 추가하여 디렉토리를 읽을 수 있도록 Apache (예 : in )를 구성해야합니다.

Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
<Directory "/var/www/html/.well-known/acme-challenge/">
    Options None
    AllowOverride None
    ForceType text/plain
    RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)"
</Directory>

( https://community.letsencrypt.org/t/apache-multidomain-webroot/10663/2에서 )

이러한 비밀을 모두 수동으로 파악해야하는 경우이 스크립트가 자동화와 왜 관련되어 있는지 잘 모르겠습니다.이 문제는 자동으로 해결되거나 최소한 유용한 오류 메시지로 지적 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.