๐ nginx: [emerg] cannot load certificate BIO_new_file() failed SSL ์ค๋ฅ ํด๊ฒฐํ๊ธฐ
Docker-compose
๋ก ๋ฐฐํฌํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ก ์ธํด ๋ฐฐํฌ ์ฌ์ดํธ์ SSL
์ ์ ์ฉํ ์ ์์๋ค.
nginx: [emerg] cannot load certificate "/etc/nginx/ssl/live/<domain>/fullchain.pem"
: BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/ssl/live/<domain>/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
๋๋ letsencrypt
์์ SSL
์ธ์ฆํค๋ฅผ ๋ฐ๊ธ๋ฐ์๊ณ ์ธ์ฆ์์ ๋ง๋ฃ ๊ธฐ๊ฐ์ด ์ง๋์ง ์์๋๋ฐ, Docker
๋ก ์๋ก์ด container
๋ฅผ ์์ฑํ๋ค๋ณด๋ ์ด์ ์ ์๋ container
๋ฅผ ๋ชจ๋ ์ญ์ ํ์ฌ(๊ธฐ๋ก๋ ์ ๋จ๊ฒ rm -rf
๋ก..) ๊ธฐ์กด์ certbot
๊ณผ ๊ด๋ จํ ํ์ผ๋ค์ ๋ง๋ํ๊ฒ ์ฌ๋ผ์ก๋ค. SSL
์ ์ ์ฉํ๋ ค๋ฉด ์ธ์ฆ์๋ฅผ ๋ค์ ์ฒ์๋ถํฐ ๋ฐ๊ธํด์ผ ํ๋ ์ํฉ์ธ๋ฐ, ๋๋ฌด ๋ง์ ์๋๋ก ์ธํด ์๋ก ๋ฐ๊ธ๋ฐ์ผ๋ ค๋ฉด 7์ผ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ค. (๊ด๋ จ ๊ธ: too many certificates)
๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋์ง ํ์ฐธ์ ๊ณ ๋ฏผ ๋์ VM ware
๊ฐ์ํ๊ฒฝ ํ์ผ์ ์ด๊ฒ์ ๊ฒ ๋๋ฌ๋ณด๋ /etc/letsencrypt/
ํด๋์ ๋ค์๊ณผ ๊ฐ์ ํ์ผ๋ค์ด ์์๋ค. ์ฒ์์ ์ด๊ฒ๋ค์ด ๋ฌด์จ ํ์ผ์ธ์ง ๋ชฐ๋๋๋ฐ, ์๊ฐํด๋ณด๋๊น letsencrypt
์์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ฅ์ ๋ดค๋ ๊ธฐ์ต์ด ์์๋ค.
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/<domain>/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/<domain>/privkey.pem
ํธ๋ค๋ฅ /etc/letsencrypt/live/
์ผ๋ก ๋ค์ด๊ฐ๋๊น ์ธ์ฆ์ ๊ด๋ จ ํ์ผ๋ค์ด ์์๋ค. (docker container
๋ฅผ ์์ฑํ๋ฉด ๋์ค๋ ํ๊ฒฝ์ด ์๋ SSH
ํ๊ฒฝ์ ๊ฒฝ๋ก์ด๋ค.)
๊ทธ๋์ ๊ฐ์ํ๊ฒฝ์ ./certbot/conf/
์์ sudo rm -rf conf/
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด conf/
ํด๋๋ฅผ ์ ๊ฑฐํ๊ณ /etc/letsencrypt/
์ ์๋ ํ์ผ๋ค์ ๋ชจ๋ certbot/conf/
ํด๋ ๋ด๋ถ๋ก ์ฎ๊ฒผ๋ค. ์ด๋ ์ฌ์ฉํ ๋ช
๋ น์ด๋ sudo cp -r * <๋ถ์ฌ ๋ฃ์ ๊ฒฝ๋ก>
๋ค. (์ฃผ์ ํ ์ ์ cp -r
๋ก๋ง ๋ณต์ฌํ๋ฉด cert.pem
, fullchain.pem
์ฒ๋ผ .pem
ํ์ผ์ ์ ๋๋ก ๋ณต์ฌ๊ฐ ๋์ง ์๋๋ค. ๋ช
๋ น์ด์ *
๋ฅผ ๋ถ์ฌ์ฃผ์.) ๋ค์ ์คํํ๋ฉด ์ค๋ฅ๊ฐ ๋จ์ง ์๊ณ ์ ์์ ์ผ๋ก SSL
๋ก ์ง์
ํ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
์ฌ๋ด์ผ๋ก docker-compose
๋ก Nginx
๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ Nginx
๋ฅผ ์ฌ์์ํด์ค์ผ ์์ ์ฌํญ์ด ๋ฐ์๋๋ค. docker-compose restart nginx
๋ฅผ ์
๋ ฅํ์ฌ Nginx
๋ฅผ ์ฌ์์ํด์ฃผ๋ฉด Restarting git-farm_nginx_1... done
์ด๋ ๋ฌธ์ฅ์ด ๋ํ๋๋ค.
์ด๋ ๊ฒ ๊ธ๋ก ์ ๋ฆฌํด๋ณด๋ ๋์ด๋๊ฐ ์๋ ์์
์ ์๋์๋๋ฐ, ๋ง๋
ํ ํด๊ฒฐ์ฑ
์ด ์์ด ์ด๊ฒ์ ๊ฒ ์๋ํ ๊ฒ์ด (์ผ๋ช
์ฝ์ง) ์ค๋ ๊ฑธ๋ ธ๋ ๊ฒ ๊ฐ๋ค. ๋์ ๊ฐ์ ๋ฌธ์ ๋ก ๊ณ ์ํ๊ณ ์๋ ๋ถ๋ค์๊ฒ ์กฐ๊ธ์ด๋๋ง ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ๊ณ Nginx.conf
์ฝ๋๋ฅผ ์ฌ๋ฆฌ๋ฉฐ ๊ธ์ ๋ง์น๊ฒ ๋ค.
# nginx.conf
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name <domain>;
root /usr/share/nginx/html/;
location ~ /.well-known/acme-challenge {
allow all;
root /usr/share/nginx/html/letsencrypt;
}
location / {
return 301 <domain>$request_uri;
}
}
server {
listen 443 ssl;
server_name <domain>;
root /usr/share/nginx/html/;
server_tokens off;
ssl_certificate /etc/nginx/ssl/live/<domain>/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/<domain>/privkey.pem;
ssl_dhparam /etc/nginx/dhparam/dhparam-2048.pem;
ssl_buffer_size 8k;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
location / {
try_files $uri /index.html;
}
location /api {
proxy_pass http://backend:7777;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
'devOps > Nginx' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ์์ง์์ค(Nginx) ] [ warn ] the "ssl" directive is deprecated, use the listen ... (0) | 2022.03.11 |
---|
๋๊ธ