先交代一下为啥要弄这么个本地的https环境,我计划在本地弄一套和线上一样的环境,这样在开发时我可以直接通过jenkins将代码提交到线上不需要在通过ftp上传文件到服务器,方便我调试和管理相关代码,因此我在本地配置了https环境,我觉得很有必要将过程记录下来以方便查阅,废话说完了开始正题。
1、先确保本地已经安装openssl和openssl-devel (没安装的自行安装)。
2、自己给自己颁发证书(制作密钥)
cd
/usr/local/Nginx/conf/cert(存放证书目录,自己创建)openssl genrsa -des3 -out server.key 1024 (生成私钥,会输入密码短语,需要记住这个密码)
openssl req -new -key server.key -out server.csr
命令输入完成后会填写一些必要的信息如下:
Country Name(国家:中国填写CN)
State or Province Name(区域或是省份:CHONGQING)
Locality Name(地区局部名字:CHONGQING)
Organization Name(机构名称:填写公司名)
Organizational Unit Name(组织单位名称:部门名称)
Common Name(网站域名)
EmAIl Address(邮箱地址)
A challenge password(输入一个密码)
An optional company name(一个可选的公司名称)
3、填完那些就会在当前目录生成server.csr文件,接下来执行
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key (对于使用的私钥启动SSL功能的NGINX)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt (使用密钥和CSR对证书进行签名)
4、配置Nginx文件
在原来的server{}下增加一个server{} 内容如下:
server {
listen 443; # https端口监听
server_name www.viphper.com;
root /web/www.viphper.com;
index index.html index.htm index.php;
# ssl配置
ssl on;
ssl_certificate cert/server.crt; #你自己的证书目录
ssl_certificate_key cert/server.key; #你自己的证书目录
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9010;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
try_files $uri =404;
}
}
重启nginx打开你本地的网站看看是不是https可以访问啦。