本文共 1982 字,大约阅读时间需要 6 分钟。
此时的错误提示提示用户需要启用ngx_http_ssl_module模块。这种情况通常发生在安装Nginx时未配置--with-http_ssl_module选项。要解决这个问题,可按照以下步骤操作:
确认当前Nginx的安装目录为/usr/local/nginx,源码包位于/usr/local/src/nginx-1.6.2。
重新编译Nginx,添加ssl模块:
cd /usr/local/src/nginx-1.6.2 ./configure --prefix=/usr/local/nginx --with-http_ssl_module make
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak cp ./objs/nginx /usr/local/nginx/sbin/
cd /usr/local/src/nginx-1.11.3
/usr/local/nginx/sbin/nginx -V
--prefix=/usr/local/nginx --with-http_stub_status_module
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make cp ./objs/nginx /usr/local/nginx/sbin/
以下是实现Http和Https共存的配置示例:
server { listen 80 default_backend=server; server_name wosign.com; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443 ssl; server_name wosign.com; ssl_certificate /usr/local/Tengine/sslcrt/wosign.com.crt; ssl_certificate_key /usr/local/Tengine/sslcrt/wosign.com.key; root /var/www/html; } 为了避免输入私钥密码,可以使用私钥文件进行解密:
openssl rsa -in server.key -out server.key.unsecure
这样可以生成一个解密后的key文件,方便Nginx重启时直接使用,无需输入密码。
为了提升SSL性能,可在Nginx配置中添加以下优化参数:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
可以通过Nginx配置让所有访问的请求自动跳转到Https:
server { listen 80; server_name www.example.com; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443 ssl; server_name www.example.com; ssl on; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; root /home/www; } 以上配置可根据实际需求进行调整,确保Nginx正常运行并支持SSL连接。
转载地址:http://jecfk.baihongyu.com/