一、nginx里https功能默认没有开启,而且编译安装默认也不开启,安装时需要指定选项参数--with-http_ssl_module
二、了解ssl
“ssl就是安全套接层,是Netscape所研发,用以保障在Internet上数据传输的安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听的一种应用软件。”
ssl是在应用层与传输层之间加的一个加密协议;它不仅表明了这个域名属于谁,包括含有日期等信息,里面还包括有特定的公钥和私钥
-->公开密钥是所有人都有的密钥
-->私有密钥是持有方才有的密钥(私钥一般放在服务器里,数据结经过私钥加密就只能被公钥解密)
-----》非对称加密(也叫做公钥加密)在客户端与服务器端的应用:
- 服务端自己拥有成对的私钥和公钥,
- 然后公布自己的公钥让客户端知道
- 客户端用公钥把自己的数据进行加密,加密之后,公钥无法解开这段数据,只有服务端的私钥才能解密
----对称加密就说使用一把私钥去加密
三,证书和数字签名
-->证书其实本质就是公钥和私钥,
为什么需要证书呢?是为了安全性,去确保我访问的服务器是真正我要访问的;
-->数字签名就是一种身份识别
- 就是颁发的证书上签名,证明这个证书是某个公司的,具有可行性
- 先数字签名,识别通过了,再数据加密,传输数据
- 浏览器认可CA颁发的证书,证书上有签名,浏览器和CA公司达成来合作关系,背后有联系
四、在nginx里部署https服务
1,首先需要去阿里云腾讯云申请证书,(有免费的证书digicert类型的,可以免费使用一年)
2,上传下载的证书到nginx服务器的conf目录下
3,修改配置文件(私钥公钥改成自己申请的)启用https服务
4,检查语法,重启nginx服务
5,验证:查看端口:netstat -anplut|grep nginx
6,查看ip,修改hosts文件,在/etc/hosts里添加对应的ip和域名