Một kịch bản có thể xảy ra:
đôi khi có thể xảy ra rằng, khi định cấu hình tệp SSL (khóa riêng và chứng chỉ) cho Virtualhost đang được định cấu hình, người ta đã quên chỉ định đường dẫn tuyệt đối nơi các tệp này nằm.
Ví dụ: nếu bạn theo dõi tài liệu chính thức này từ Nginx: http://nginx.org/en/docs/http/configuring_https_servers.html
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate tdmssl.crt;
ssl_certificate_key tdmssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}
Giả sử bạn lưu trữ các tệp SSL bên trong " /etc/nginx/conf.d ":
root@ilg40:/etc/nginx/conf.d# pwd
/etc/nginx/conf.d
root@ilg40:/etc/nginx/conf.d# ll
total 16
drwxr-xr-x 2 root root 4096 Jan 24 17:39 ./
drwxr-xr-x 5 root root 4096 Jan 24 21:15 ../
-rw-r--r-- 1 root root 1359 Jan 24 17:39 tdmssl.crt
-rw-r--r-- 1 root root 1675 Jan 24 17:39 tdmssl.key
Chuyện gì xảy ra
Theo mặc định, khi không chỉ định đường dẫn tuyệt đối cho một tệp thông thường được sử dụng bởi Nginx, Nginx sẽ tìm kiếm các tệp tại "/ etc / nginx"
Từ /var/log/nginx/error.log
2017/01/24 21:05:10 [emerg] 13113#0:
BIO_new_file("/etc/nginx/tdmssl.crt")
failed(SSL:error:02001002:system library:fopen:
No such file or directory:fopen('/etc/nginx/tdmssl.crt','r')
error:2006D080:BIO routines:BIO_new_file:no such file)
Phải làm gì đây?
Để chỉ định đường dẫn tuyệt đối của các tệp bổ sung được sử dụng bởi cấu hình Virtualhost của bạn.
Như thế này:
root@ilg40:/etc/nginx/conf.d# cd
root@ilg40:~# cat /etc/nginx/sites-available/tdm
server {
listen 443 ssl;
server_name tjsdatamanager.redtjs.com;
ssl_certificate /etc/nginx/conf.d/tdmssl.crt;
ssl_certificate_key /etc/nginx/conf.d/tdmssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
include proxy_params;
proxy_pass http://unix:/etc/tdm/flask/wsgi.sock;
}
}
path/to/cert.pem
chắc chắn không phải là một địa điểm hợp lệ