ssl_certificate、ssl_certificate_key 路径是直接从windows的文件夹目录拷过来的。
ssl_certificate D:\Chanjet\TPlusStd\WebServer\nginx\conf\cert\5037152_******.com.pem;
ssl_certificate_key D:\Chanjet\TPlusStd\WebServer\nginx\conf\cert\5037152_******.com.key;
配置后使用 nginx -t 查看配置文件是否正确,发现一直报路径错误。
这是配置成功的文件:
server {
listen 443 ssl;
server_name www.******.com; #修改为申请证书绑定的域名
root html;
index index.html index.htm;
ssl_certificate D:\Chanjet\\TPlusStd\WebServer\\nginx\conf\cert\5037152_******.com.pem;
ssl_certificate_key D:\Chanjet\\TPlusStd\WebServer\\nginx\conf\cert\5037152_******.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
error_page 497 301 https://$http_host$request_uri;
location / {
root D:/java_web/dist;
index index.html index.htm;
}
location /api {
proxy_pass http://127.0.0.1:8885/api;
}
}
后来才发现问题在于:
windows的目录分隔符默认是"\"
而linux默认是"/"
而\t,\r\n,\r恰好是转义字符
而nginx配置文件是可以转义这些字符的,导致配置出错
至于解决方法,多加一个\就行了,比如\t,\r\n,\r
参考文章:
http://www.php20.cn/article/147