Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"
出现如图所示错误,处理办法如下
去nginx解压目录下执行

./configure --with-http_ssl_module
如果报错 ./configure: error: SSL modules require the OpenSSL library.则执行
yum -y install openssl openssl-devel
./configure
./configure --with-http_ssl_module
执行 make(切记不能 make install 会覆盖安装目录)
将原来 nginx 备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
将新的 nginx 覆盖旧安装目录
cp objs/nginx /usr/local/nginx/sbin/nginx
如果报错,执行 cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
测试 nginx 是否正确
/usr/local/nginx/sbin/nginx -t
如图最后是测试成功的,之前遇到一个错误是我的SSL证书路径有错,修改后测试通过
浏览器访问时 出现连接失败 且页面上有 NGINX - ERR_SSL_PROTOCOL_ERROR错误的原因及解决办法
在Nginx1.15版本之前,我们配置HTTPS服务是如下这样配置的。
server{
listen 443;
server_name 网站域名;
ssl on;
ssl_certificate SSL证书;
ssl_certificate_key SSL证书私钥;
ssl_ciphers 加密算法;
ssl_protocols 加密协议;
ssl_prefer_server_ciphers on;
}
但是这样的配置如果方在Nginx1.15版本及之后是错误的,启动Nginx的时候系统会报错,原因是SSL ON这样的配置不再支持,需要删除掉。但是当你删除掉那一句代码后,重新启动Nginx就会发现浏览器访问页面时就会出现” ERR_SSL_PROTOCOL_ERROR”的错误。

那么在Nginx1.15版本下,我们应该做如下配置:
server{
listen 443 ssl;
server_name 网站域名;
ssl_certificate SSL证书;
ssl_certificate_key SSL证书私钥;
ssl_ciphers 加密算法;
ssl_protocols 加密协议;
ssl_prefer_server_ciphers on;
}
之后如果利用https形式访问,浏览器仍问成功响应,有新的错误,则尝试以下
server{
listen 443 default ssl;
server_name 网站域名;
ssl_certificate SSL证书;
ssl_certificate_key SSL证书私钥;
ssl_ciphers 加密算法;
ssl_protocols 加密协议;
ssl_prefer_server_ciphers on;
}
在配置Nginx SSL时遇到'unknown directive "ssl"'错误,解决方法包括安装openssl库并重新配置Nginx。在Nginx 1.15版本后,'ssl on'指令不再被支持,需改为'listen 443 ssl',否则可能导致'ERR_SSL_PROTOCOL_ERROR'错误。正确配置应包含'ssl_certificate'和'ssl_certificate_key'等参数。
1616

被折叠的 条评论
为什么被折叠?



