ssl 인증 설정 문제 도움 요청 부탁 드립니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
1번 사이트 : https://itreport.tistory.com/637
2번 싸이트 : https://www.wsgvet.com/bbs/board.php?bo_table=home&wr_id=639
ssl 인증을 위해 1번 싸이트를 따라 하다가 certbot-auto 방식? 이 잘 안되는 것 같아서
2번 사이트의 dns 인증 방식을 보고 키 설정 생성하고 이후에는 다시 1번 사이트를 보고
ngnix 의 default 파일을 수정 했습니다.
몇 번의 에러를 모두 수정해서 nginx -t 로 오류도 없고 리스타트도 했는데
연결이 안되네요.
다음은 디폴트 파일 내용입니다. (하도 헤집어 놔서 엉망일수 있습니다)
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name feedzone.club;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/fullchain.pem;
include /etc/nginx/snippets/ssl.conf;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
client_max_body_size 7M; # 업로드 허용 용량
include snippets/rhymix.conf;
}
#location / {
# try_files $uri $uri/ =404;
# if (!-e $request_filename) {
# rewrite ^.*$ /index.php last;
# }
# pass PHP scripts to FastCGI server
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
# }
# }
# HTTPS www. server configuration
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.feedzone.club;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/fullchain.pem;
include /etc/nginx/snippets/ssl.conf;
location / {
return 301 https://feedzone.club$request_uri;
}
}
# Default server configuration
server {
listen 80;
listen [::]:80 default_server;
server_name feedzone.club;
include /etc/nginx/snippets/letsencrypt.conf;
location / {
return 301 https://feedzone.club$request_uri;
}
}
# HTTP - CNAME Connect www.feedzone.club to feedzone.club
server {
listen 80;
listen [::]:80;
server_name www.feedzone.club;
include /etc/nginx/snippets/letsencrypt.conf;
location / {
return 301 https://www.feedzone.club$request_uri;
}
}
요렇게 했는데 뭐가 문제일까요..
댓글 24
추가로 아래 경로와 키 연결이 잘못 된 것을 발견하고 조금전에 수정했습니다. - 그래도 아직 연결은 안되네요.
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_trusted_certificate /etc/nginx/ssl/chain.pem;
특이한 부분은 dns 인증을 받은 클라우드플레이어 쪽에 총 3개의 도메인이 물려 있는데 나머지 두개는 그냥 도메인 자체에 자동으로 https 인증이 걸려져 있고 싸이트도 잘 작동이 되네요.
한 가지 의심 가는 곳은 아래 두 디폴트 파일의 차이점인데 서로 중복되는 것이 있으면 오류가 나서
대부분 enalbled 쪽 파일을 수정해줬다는 것입니다.
본문 내용에 삽입한 디폴트 파일은 available 파일의 디폴트 내용입니다.
추가로 의심 되는 부분입니다.
available에 있는 default 파일과 enabled에 있는 default 파일의 내용이 같은가요?
우분투 기준으로 enabled에 있는 파일만 실제로 사용됩니다.
두 파일이 심볼릭 링크로 연결되어 있어서 하나만 수정해도 다 적용되는 것이 정상이지만,
FTP로 조작하면 심볼릭 링크가 깨져버리곤 해서...
거의 같지만이 아니라 완벽하게 같아야 합니다.
헷갈린다면 차라리 available은 비어 있고 enabled 쪽에만 있는 편이 낫습니다.
available에 무슨 내용을 넣더라도 적용되지 않습니다. enabled에 있는 것만 적용됩니다.
편집하는 도중에 사라졌는지 라이믹스 깃허브 내용에서 추가할게 빠져있어서
아래 내용을 다시 넣었는데 아직 사이트는 알열리네요.
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # PHP-FPM을 유닉스 소켓으로 연동하는 경우
# fastcgi_pass 127.0.0.1:9000; # PHP-FPM을 로컬 포트로 연동하는 경우
include snippets/fastcgi-php.conf;
}
혹시 잘못된게 있는지 몰라서 nginx 상태도 올려 봅니다.
혹시 몰라서 키를 다시 만들어 보려는데 퍼미션 때문인지 삭제도 안되고 명령어를 재입력해도 아래와 같이 나타납니다.
ubuntu@velomano-i:~$ sudo su
root@velomano-i:/home/ubuntu# acme.sh --issue --dns dns_cf -d feedzone.club -d www.feedzone.club --key-file /etc/nginx/ssl/privkey.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --cert-file /etc/nginx/ssl/chain.pem --reloadcmd "systemctl reload nginx.service"
[Fri Mar 12 17:50:23 KST 2021] Domains not changed.
[Fri Mar 12 17:50:23 KST 2021] Skip, Next renewal time is: Mon May 10 06:22:27 UTC 2021
[Fri Mar 12 17:50:23 KST 2021] Add '--force' to force to renew.
root@velomano-i:/home/ubuntu#
어찌 하다보니 fullchain.pem 키 소스가 2개 있는데 이건 괜찮은건지 모르겠습니다. 아래것 삭제해보려고 하는데 삭제는 안되네요.
이거대로 하시면 됩니다.
https://koreanvlog.com/136/
https://koreanvlog.com/209/
알려주신 1,2번 페이지 모두 적용했는데 아직 연결이 안되네요;;;
ssl 연결이 이렇게나 어렵군요 ㅜ ㅜ
include /etc/nginx/snippets/letsencrypt.conf;
이 내용으로 되어 있는데 혹시 틀렸을까요?
본문글 내용중에 일부 싸이트와 다른 부분은 현재는
전체적으로 싸이트 내용 복사 넣고 수정을 해놓은 상태입니다.
3일전에 했을때 저는 문제가 없었거든요.
Nginx - 502 Bad Gateway
오류가 있는데 자세히 보니 fastcgi_pass unix:/run/php/php7.4-fpm.sock; 버전이 7.2로 되어 있었네요.
저같은 초보를 위해 이 부분에 대해 변경 주의를 달아주시면 좋을것 같습니다.
싸이트가 열려서 좋아 했는데 대시보드에 이런 에러가 뜨네요.
부지런히 써칭중인데 아직 답을 찾지는 못했습니다.
클라우드플레어 CDN 해제 하시고 서버 자체로만 접속되게 해서 서버에 설치하신 SSL 을 검증 해보시는게 어떠실지...
두번째 페이지 보고 일부 내용 수정했는데 혹시 여기 설정에 문제가 있는지 확인 부탁드릴게요.
특히 18번에 에러가 뜨네요.
드디어 원인을 찾았습니다. 라이믹스 에러는 설정 파일에서 ssl항상사용(권장)을 놓으니 해결 되었습니다.
모든 문제 해결 완료. 댓글 주신분들 모두 감사 드립니다.