php79 / stack

PHP 5.3 ~ 8.2 + Nginx + Let's Encrypt + MariaDB + 앱 자동 설치
https://www.php79.com
MIT License
89 stars 32 forks source link

ssl 와일드카드 적용방식을 알고 싶습니다. #57

Closed movement822 closed 2 years ago

movement822 commented 5 years ago

백업기능은 감사히 잘 사용하고 있습니다.( )

letsencrypt 와일드카드적용 업데이트가 가능하신가요?

아니면 배포하신 코드에서의 수정방법을 알려주실 수 있으신가요?

ssl-install.sh 파일의 171라인, 174라인에서 -d www.${INPUT_DOMAIN} 을 -d .${INPUT_DOMAIN} 로 수정도 해보고.. -d .${INPUT_DOMAIN} 을 추가도 해봤는데.. 진행이 되지 않더라고요.

아니면.. 개별적인 www 뿐만아니라 다른 단어도 사용하고 싶어서요.. 예를들어 admin. 혹은 m. 이나 img. 이런식으로요. 방법이 있을까요?

답변 부탁드립니다.

늘 감사합니다.

ibin79 commented 5 years ago

구글에서 letsencrypt wildcard로 검색해보니... 와일드카드 인증서는 DNS 인증을 해야하는데, stack 에서는 webroot 인증으로만 동작하도록 되어 있습니다.

따라서 ssl-install.sh를 사용하지 마시고, certbot-auto 명령으로 DNS 인증 예제를 찾아 따라해보시는 것이 좋을 것 같습니다.

그리고 서브 도메인 추가는 ssl-linstall.sh 에서 다음 루틴에 -d 옵션을 -d admin.${INPUT_DOMAIN} 형식으로 추가하도록 임시 수정해서 사용은 가능합니다.

  outputComment "# 인증서 발급 테스트를 시작합니다. (--dry-run)\n"
  cmd "certbot-auto certonly --webroot -w /var/www/letsencrypt/ -d ${INPUT_DOMAIN} -d www.${INPUT_DOMAIN} -d admin.${INPUT_DOMAIN} -m ${LETSENCRYPT_EMAIL} --agree-tos -n --dry-run"

  outputComment "# 실제 인증서 발급을 시작합니다.\n"
  cmd "certbot-auto certonly --webroot -w /var/www/letsencrypt/ -d ${INPUT_DOMAIN} -d www.${INPUT_DOMAIN} -d admin.${INPUT_DOMAIN} -m ${LETSENCRYPT_EMAIL} --agree-tos -n"

참고로 제 경우는 서브 도메인이 다른 경우는 계정 자체를 분리하는 경우가 많았기 때문에.... 다음처럼 2개 이상 인증서를 계정마다 각각 발급하는 형태를 사용했습니다.

./ssl-install.sh --user=php79 --domain=php79.net
./ssl-install.sh --user=phpmyadmin --domain=phpmyadmin.php79.net
movement822 commented 5 years ago

개별적으로 가능하다면 굳이 와일드카드를 적용할 필요는 없어서요. -d 옵션을 추가해서 어제도 시도해보고 오늘도 시도해봤는데.. 계속 안되서...

확인해보니 /etc/nginx/conf.d/계정명.conf 파일에서 server_name을 수동으로 추가해줘야 하더라고요.

혹시 저처럼 실수하시는 분 있을까봐 글 남깁니다.

ibin79 commented 5 years ago

맞습니다. nginx 에서 server_name 항목에 서브 도메인은 수동 추가가 필요합니다.

ssl-install.sh 에서는 nginx 설정을 다음 2가지만 추가합니다.

[1/3] nginx - Let's Encrypt 인증용 디렉토리 접근 추가

include /etc/letsencrypt/php79/well-known.conf;

[3/3] nginx 사이트 단위 설정 마지막에 SSL 설정 추가

https://github.com/php79/stack/blob/master/letsencrypt/template-server.conf

사례 자세히 남겨주셔서 감사하고요. 위키에도 링크해두었습니다. ^^ https://github.com/php79/stack/wiki/letsencrypt#%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0