> CentOS > CentOS教程 >

CentOS下Nginx的HTTPS配置

在前面的博客里也到了nginx的安装,现在需要给网站添加安全证书的达到可以实现https请求的功能。

1.首先我们需要一个证书

可以使用自签名的证书(如何自签可以网上搜索下),虽然可以使用但不会被chrome,firefox,Safari等浏览器认可。

也可以去网上购买证书,加个几百元到上万元不等可以自行选择合适价位的证书,不过我在阿里云的购买证书上发现了赛门铁克的0元dv ssl可以使用一年,初次使用推荐去购买一个。

2.nginx的ssl模块安装 
安装时直接./configure是不会安装ssl模块的,需要加上

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_realip_module 
make
make install

3.nginx的ssl配置

添加新的server代码块用来监听443端口

... 

#服务器的集群  
upstream  tomcats {  #服务器集群名字   
   server    127.0.0.1:8080  weight=10;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
   #server    127.0.0.1:28080  weight=2;  
}  

server {
     listen     443;
     server_name  www.xxx.com;

     ssl on; 

     ssl_certificate   /usr/local/cert/证书名.pem;
     ssl_certificate_key  /usr/local/cert/证书名.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;

    location / {
        root html;
        proxy_pass http://tomcats;        
        index index.html index.htm;
    }



}
...

4.将http重定向到https  server {  listen 80;  server_name www.xxx.com;

#添加下面这条代码  
rewrite ^(.*)$  https://$host$1 permanent; #用于将http页面重定向到https页面

  location / {
    root html;
    proxy_pass http://tomcats;
    index index.html index.htm;
}

… 
5.重启nginx

/usr/local/nginx/sbin/nginx -s reload
(责任编辑:IT)