nginx网站ssl实现https加密访问 - 云起网

云起网

您现在的位置是:首页> Web开发 -> nginx网站ssl实现https加密访问

Article

nginx网站ssl实现https加密访问

云起网2018-09-11 Web开发283
如何在linux的nginx环境下让我们的php站点支持https,使用ssl模块配置同时支持http和https并存,后续把本站也支持上https。

现在很多站点都实现了https,有追加支持的,也有单独支持https的,很多站长博客都支持了,更别说一些大站了,而且ios app上都硬性要求用https,苹果App于2017年1月1日将启用App Transport Security安全功能,即强制App通过HTTPS连接网络服务。

我想这是一个趋势,很多网站都陆陆续续支持了https,有很多网友表示:

一把绿锁好看

逼格高 

心理感觉好。尤其是用 chrome 时

防止被劫持加入广告


下面学习下如何在linux的nginx环境下让我们的php站点支持https使用ssl模块配置同时支持http和https并存,后续把本站也支持上https。


一、生成证书

#先定位到存放证书的目录,创建证书和私钥的目录,我放在nginx的conf目录下
cd /usr/local/nginx/conf


#1 创建服务器私钥:
openssl genrsa -des3 -out server.key 1024


#2 创建签名请求的证书(CSR):
openssl req -new -key server.key -out server.csr


#3 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key


#4 最后标记证书使用上述私钥和CSR:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


#以上过程中会要求输入密码,City,Orgination,Name,Email等信息,

20180612150545_67258.png

这些信息会在证书信息中显示,如下面的截图。


20180612150545_67258.png


二、配置nginx

修改域名绑定的nginx.conf,也可能是别的文件(如果自定义了额外的站点配置文件)。

server
    {
        listen 443 ;
        #listen [::]:81 default_server ipv6only=on;
        server_name _;


       ssl                  on;
       ssl_certificate      /usr/local/nginx/conf/server.crt;
       ssl_certificate_key  /usr/local/nginx/conf/server.key;
       ssl_session_timeout  5m;


        index index.html index.htm index.php;
        root  /home/wwwroot/default;
        ...
}
加入server一节,配置端口和ssl密钥

三、检查配置并重启

#检查下是否配置正确

/usr/local/nginx/sbin/nginx -t

#配置正确显示下面

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok  
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#然后重启nginx

service nginx reload

20180612150545_67258.png

输入网址访问下看看效果

20180612150109_44455.png

这样就可以访问了,只不过证书是没有认证的,这个问题后续再研究。。。

【环境版本】

debian linux

nginx(lnmp1.4)

php




文章评论

共有0条评论来说两句吧...