NGINX之——配置HTTPS加密反向代理訪问–自签CA
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46695495
出于公司内部訪问考虑,採用的CA是本机Openssl自签名生成的,因此无法通过互联网工信Root CA验证,所以会出现该站点不受信任或安全证书无效的提示。直接跳过,直接訪问就可以!
HTTPS的原理和訪问过程:
server必要条件
一个server私钥 KEY文件
一张与server域名匹配的CA证书(公钥,依据私钥key生成)
訪问过程:
1,client浏览器通过https协议訪问server的443port,并获得server的证书(公钥);client浏览器这时候会去找一些互联网可信的RootCA(权威证书颁发机构)验证当前获取到的证书是否合法有效,PS:这些RootCA是随操作系统一起预设安装在了系统里面的;
2,假设RootCA验证通过,表示该证书是可信的,而且若证书中标注的server名称与当前訪问的serverURL地址一致,就会直接使用该证书中包括的公钥解密server通过自己的KEY(私钥)加密后传输过来的网页内容,从而正常显示页面内容;
3,假设RootCA验证不通过。说明该证书是未获得合法的RootCA签名和授权,因此也就无法证明当前所訪问的server的权威性,client浏览器这时候就会显示一个警告。提示用户当前訪问的server身份无法得到验证,询问用户是否继续浏览!(通常自签名的CA证书就是这样的情况)这里须要注意。验证CA的有效性。仅仅是证明当前server的身份是否合法有效。是否具有公信力以及身份唯一性,防止其它人仿冒该站点。但并不会影响到网页的加密功能,虽然CA证书无法得到权威证明。可是它所包括的公钥和server上用于加密页面的私钥依旧是匹配的一对,所以server用自己的私钥加密的网页内容,client浏览器依旧是能够用这张证书来解密,正常显示网页内容,所以当用户点击“继续浏览此站点(不推荐)”时。网页就能够打开了。
自签名CA证书生成
1、 用Openssl随机生成server密钥,和证书申请文件CSR
2、自己给自己签发证书
#opensslx509 -req -days 3650 -in moonfly.net.csr -signkeymoonfly.net.key -outmoonfly.net.crt
-days 3650 证书的有效期,自己给自己颁发证书,想有多久有效期,就弄多久,我一下弄了10年的有效期;
-inmoonfly.net.csr指定CSR文件
-signkeymoonfly.net.key指定server的私钥key文件
-outmoonfly.net.crt 设置生成好的证书文件名称
一条命令,自己给自己压钢印的身份证 moonfly.net.crt 就诞生了!
注:事实上严格来讲,这里生成的仅仅是一张RootCA,并非严格意义上的server证书ServerCA,真正的ServerCA是须要利用这张RootCA再给server签署办法出来的证书才算;只是我们这里仅仅讲怎样实现网页的SSL加密。所以就直接使用RootCA了。也是能正常实现加密功能的。
NGINX配置启用HTTPS并配置加密反向代理配置文件改动完成后,用nginx -t 測试下配置无误,就reload一下nginx服务。检查443port是否在监听:
配置完成,https已经在工作了,如今能够通过https訪问站点了