SSL证书的申请与安装

个人可以在阿里云上是申请免费的Symantec DV SSL 证书使用
企业可以购买企业版的OV SSL 证书使用

SSL证书安装:

1.在证书控制台下载Nginx版本证书。下载到本地的压缩文件包解压后包含:

.pem文件:是证书文件
.key文件:证书的私钥文件

2.在Nginx的安装目录下conf目录中创建cert目录,并且将下载的全部文件拷贝到cert目录中

3.打开 Nginx 安装目录下 conf(nginx.conf所在目录) 目录中的 nginx.conf 文件
将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :

server {
listen 443 ssl;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
ssl_certificate cert/a.pem;
ssl_certificate_key cert/a.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;
}
保存退出

4.重启nginx

5.当浏览器无法访问或报SSL_ERROR_RX_RECORD_TOO_LONG错误时, 修改server里面的 listen 443;  为  listen 443 default ssl;  或
listen 443 ssl; 保存,重启Nginx,可以解决;

6.在ningx下,用http://ip/index.php可以访问php文件,而用https://ip/index.php总弹出下载对话框,问题在于在https server{ }中没有解析php的代码块
location ~ .*\.(php|php5)?$ {
root /usr/local/nginx-1.5.1/html/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param HTTPS on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}