转载

nginx平滑升级添加ssl实现站内https

操作目录在root的home下,/home

/mt/server/nginx/sbin/nginx 这是x云默认 nginx 路径

下载nginx1.8 stable

wget http://nginx.org/download/nginx-1.8.0.tar.gz tar zxvf nginx-1.8.0.tar.gz  cd nginx-1.8.0 

下载openssl

wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz tar zxvf openssl-1.0.0d.tar.gz 

nginx -V 查看目前nginx编译选项,然后在新版本nginx下 执行,注意添加

--with-openssl=/home/nginx-1.8.0/openssl-1.0.0d 选项

./configure --user=www --group=www --prefix=/mt/server/nginx --with-http_stub_status_module --with-openssl=/home/nginx-1.8.0/openssl-1.0.0d --without-http-cache --with-http_ssl_module --with-http_gzip_static_module --with-... 

编译,不要不要不要makeinstall

make 

之后会看在当前目录生成objs文件,执行

./objs/nginx -V  nginx version: nginx/1.8.0 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55) built with OpenSSL 1.0.0d 8 Feb 2011 TLS SNI support enabled 

发现 TLS SNI support enabled 这我们可以放心用了,这可以实现一个ip多个站点。

但是

nginx -v 这时候还是老版本的nginx,下面我们需要做的比较关键

我们需要先备份

mv /mt/server/nginx/sbin/nginx /mt/server/nginx/sbin/nginx.old 

然后转移

cp ./objs/nginx /mt/server/nginx/sbin/nginx 

测试下

/mt/server/nginx/sbin/nginx -t 

ok,执行更新

make upgrade 

然后的最后

nginx -V nginx version: nginx/1.8.0 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55) built with OpenSSL 1.0.0d 8 Feb 2011... 

到此就成功了升级了 nginx 并且添加了 TLS SNI support

最后的步骤就是接 申请证书 ,配置nginx文件就好。

申请完证书,会有对应的web服务器的配置参考。这里简单贴下

server {  listen 443 ssl;  ssl on;  server_name www.maipingzheng.com;  root /mt/www/mycnart1.2.0.1/;  index index.php;  ssl_certificate /mt/server/nginx1.2.5/conf/ssl/1_www.maipingzheng.com_bundle.crt;  ssl_certificate_key /mt/server/nginx1.2.5/conf/ssl/2_www.maipingzheng.com.key;  ssl_session_timeout 5m;  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  ssl_ciphers ALL:xxxxxxxxxxxxGH:+MEDIUM:+LOxxxxXP;  ssl_prefer_server_ciphers on;  } 

解决http二级域名跳转https,解决http根域名跳转https

server {  listen 80;  server_name maipingzheng.com;  if ($host != 'www.maipingzheng.com') {  rewrite ^/(.*)$ https://www.maipingzheng.com/$1 permanent;  } } 

全站跳转https

server {  listen 80;  server_name www.maipingzheng.com;  rewrite ^/(.*)$ https://www.maipingzheng.com/$1 permanent; } 

ok,收工。

*注意:如果想完全实现全站https,你的全站链接都得是https的,否则绿锁会不显示。

至于如何平衡,就看具体需求了,一般都是注册登录支付购买。

获取采取js等其他措施实现。*

参考链接

正文到此结束
Loading...