Nginx配置SSL证书实现https访问「浏览器未认证」

1,280 阅读2分钟

http 和 https 介绍

http:应用最广泛的一种网络协议,是一个B/S的request和response的标准,用于从www服务器传输超文本到本地浏览器的传输协议。

https:以安全为目标的http通道,即http下加入ssl层,https的安全基础是ssl,因此加密的详细内容就需要ssl。

两者区别

安全:http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

端口:http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

状态:http的连接很简单,是无状态的;https协议是由ssl和http协议构建的可进行加密传输、身份认证的网络协议,更加安全。

1、使用openssl生成证书

openssl是目前最流行的ssl密码库工具,支持ssl/tls协议的实现。

注意:一定要安装http_ssl_module模块,查看是否安装Nginx

image.png

创建ssl目录

image.png

生成证书

openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /home/odysee/nginx1.8/ssl/nginx.key -out /home/odysee/nginx1.8/ssl/nginx.crt

查看输出文件

image.png

2、 修改nginx配置

image.png

因为普通用户不容许访问1024以下端口

所以以下端口80--->8888、443--->4433 ,大家自行配置

image.png

image.png

该ssl证书不受浏览器信任,所以会出现以下所示

image.png

image.png

如果在私有化部署还是很方便的,注意私有化部署情况下https可以不用443端口(设置其他端口也可以)。

在互联网部署的话就需要去对应的ca证书机构申请证书了(阿里和腾讯都有免费1-2年的证书可以申请,注意好过期即可),这样浏览器才不会出现“不受浏览器信任”