menu
more_vert

Nginx下的https配置

作者:dayu


①client的浏览器向server传送clientSSL 协议的版本。加密算法的种类,产生的随机数,以及其它server和client之间通讯所须要的各种信息。
②server向client传送SSL 协议的版本,加密算法的种类,随机数以及其它相关信息,同一时候server还将向client传送自己的证书。


③客户利用server传过来的信息验证server的合法性,server的合法性包含:证书是否过期,发行server证书的CA 是否可靠,发行者证书的公钥是否能正确解开server证书的“发行者的数字签名”,server证书上的域名是否和server的实际域名相匹配。假设合法性验证没有通过,通讯将断开;假设合法性验证通过。将继续进行第四步。


④用户端随机产生一个用于后面通讯的“对称password”。然后用server的公钥(server的公钥从步骤②中的server的证书中获得)对其加密。然后传给server。
⑤server用私钥解密“对称password”(此处的公钥和私钥是相互关联的,公钥加密的数据仅仅能用私钥解密,私钥仅仅在server端保留。然后用其作为server和client的“通话password”加解密通讯。同一时候在SSL 通讯过程中还要完毕数据通讯的完整性。防止数据通讯中的不论什么变化。
⑥client向server端发出信息,指明后面的数据通讯将使用的步骤⑤中的主password为对称密钥,同一时候通知serverclient的握手过程结束。


⑦server向client发出信息,指明后面的数据通讯将使用的步骤⑤中的主password为对称密钥,同一时候通知clientserver端的握手过程结束。


⑧SSL 的握手部分结束。SSL 安全通道的数据通讯開始,客户和server開始使用同样的对称密钥进行数据通讯。同一时候进行通讯完整性的检验。

配置htps:
1、改动配置文件:
进入nginx配置文件/usr/local/lnmp/nginx/conf/ 下,打开nginx.conf

[root@localhost conf]# pwd
/usr/local/lnmp/nginx/conf

[root@localhost conf]# vim nginx.conf

配置该文件例如以下所看到的:
技术分享

2、生成ssl数字证书:
进入/etc/pki/tls/,生成nginx.pem证书:
[root@localhost tls]# cd /etc/pki/tls/certs/

[root@localhost certs]# make nginx.pem
技术分享
填写证书信息:
技术分享

3、将nginx.pem文件复制到nginx配置文件里:

[root@localhost certs]# cp nginx.pem /usr/local/lnmp/nginx/conf/

4、将nginx命令载入到全局变量中
[root@localhost conf]# pwd
/usr/local/lnmp/nginx/conf

[root@localhost conf]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/bin/

5、检測自己定义配置文件的完整路径是否,并又一次载入
[root@localhost conf]# nginx -t
nginx: the configuration file /usr/local/lnmp/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/lnmp/nginx/conf/nginx.conf test is successful

[root@localhost conf]# nginx -s reload
nginx: [error] invalid PID number “” in “/usr/local/lnmp/nginx/logs/nginx.pid”

在又一次载入时出现上述问题。提示没有可用的nginx.pid文件:
在使用的阿里云server上,进程性的 nginx -s stop后再次启动nginx -s reload ,总是会报错误,这应该是由于把nginx进程杀死后pid丢失了,下一次再开启nginx -s reload时无法启动

解决方法:
又一次执行/usr/local/lnmp/nginx/sbin/nginx:
[root@localhost conf]# /usr/local/lnmp/nginx/sbin/nginx
又一次启动:
[root@localhost conf]# /usr/local/lnmp/nginx/sbin/nginx -s reload

在重载nginx
[root@localhost conf]# nginx -s reload
成功。!

在index.html中写入显示nginx页面后欢迎语:
[root@localhost html]# pwd
/mnt/nginx-1.9.9/html
[root@localhost html]# echo “Hello, Welcome to Nginx!” > index.html

6、进入浏览器訪问訪问设置的nginx地址:https://192.168.3.169,点开I Understand the Risks点击Add Exception就可以:
技术分享

点击comfire确认该认证。在訪问该nginx地址就行看到index.html中的欢迎语:
技术分享

nginx下的https配置结束!



Nginx下的https配置

原文地址:http://www.cnblogs.com/lxjshuju/p/7204908.html



Processed Time:0.20128607749939

_REQUEST:
Array
(
    [0] => read
    [1] => 95607
)
_SESSION:
Array
(
    [fid] => 4
)