标签存档: https

nginx之 – https协议,ssl证书配置

一、什么是https

简单的说,他就是安全加强版的http。
二、https的应用

1、网银类支付类平台

2、需要保证数据安全的oa办公平台

3、注册类、用户中心、代理平台

4、开放接口类

5、耍酷类 (我就属于这种类别)

三、SSL证书

1、https需要依靠ssl证书,在服务器和客户端直接进行加密解密数据传输。该证书由ca颁发,可以在证书颁发机构申请或购买,也可以自行制作。

2、证书生成
windows2003下管理工具中“证书颁发机构”可以实现证书制作。
inux下可以使用openssl 命令制作证书。

# openssl genrsa -des3 -out sgfblog.com.key 1024
# openssl req -new -key sgfblog.com.key -out sgfblog.com.csr
# openssl rsa -in sgfblog.com.key -out sgfblog.com.nopass.key

最后一个命令是为了生成不带密码的证书文件。具体过程不再详详述。

四、Nginx配置

Nginx服务器的安装与配置请参考 http://www.sgfblog.com/archives/140

https 采用的默认端口是443,配置如下:

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

        location / {
            root   /var/www/html;
            index  index.php;
        }
        include /var/www/html/nginx.htaccess;

        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        location ~ \.php$ {
            root           /var/www/html;
            fastcgi_pass   www.sgfblog.com:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }

        ssl on;
        ssl_certificate /var/www/cert/sgfblog.com.crt;
        ssl_certificate_key /var/www/cert/sgfblog.com.nopass.key;

    }

可以看出上述配置与普通的站点配置有所不同(第2行不同、新增了29-31行)
第2行监听的不再是80端口,而是443了。
ssl on; 指的是开启ssl
ssl_certificate 指的是crt文件的地址
ssl_certificate_key 指的是key文件的地址。

然后重新启动nginx就可以

service nginx restart

需要主要的是key如果是带密码才能引入的,在(重新)启动nginx需要输入密码。所以上文说生成了个nopass的key文件。
如果nginx是开机自动启动的并且key文件需要密码,那么再登陆系统之前就会有控制台让你输入这个密码,比较麻烦。