多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
将域名www.opqnext.com的证书文件1*www.opqnext.com*bundle.crt 、私钥文件2\_www.opqnext.com.key保存到同一个目录,例如/usr/local/nginx/conf目录下。 更新Nginx根目录下 conf/nginx.conf 文件如下: ~~~ server { listen 443; server_name www.opqnext.com; #填写绑定证书的域名 ssl on; ssl_certificate 1_www.opqnext.com_bundle.crt; ssl_certificate_key 2_www.opqnext.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 ssl_prefer_server_ciphers on; location / { root html; #站点目录 index index.html index.htm; } } ~~~ | 配置文件参数 | 说明 | | --- | --- | | listen 443 | SSL访问端口号为443 | | ssl on | 启用ssl功能 | | ssl\_certificate | 证书文件 | | ssl\_certificate\_key | 私钥文件 | | ssl\_protocols | 使用的协议 | | ssl\_ciphers | 配置加密套件,写法遵循openssl标准 | 然后 nginx -t 检测配置文件 nginx -s reload 重启nginx就OK了 我是这么想的,但是还是出现了问题... * 问题1:unknown directive "ssl" 报错如下: ~~~ nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/vhost/blog.com.conf:5 nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed ~~~ 出现这个错误说明没有将ssl模块编译进nginx,在configure的时候加上“–with-http\_ssl\_module”即可 详细一点: > ####### 下载你当前版本的nginx包,并且解压 进到目录 > ./configure --with-http\_ssl\_module > ####### 切记千万不要make install 那样就覆盖安装了 > make > ####### 将原来的nginx备份 备份之前先kill当前正在启动的nginx > cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak > ####### make之后会在当前目录生成 objs 目录 > cp objs/nginx /usr/local/nginx/sbin/nginx > ####### 然后重新启动nginx > /usr/local/nginx/sbin/nginx * 问题2:http 转到 https 据说是有加rewrite的方法: ~~~ rewrite ^/(.*)$ http://domain.com/$1 permanent; ~~~ 但是好像现在nginx新版本已经换了种写法: ~~~ server { listen 80; server_name www.opqnext.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name www.opqnext.com; [....] } ~~~