Nginx 如何对端口数据进行加密传输,我想在本地网络和云服务器上都搭建Nginx 2端实现加密传输,非SSL /TLS 方案的
解决方案1,放在程序端,进行传输加密,像TOKEN认证,数据加密。
解决方案2,如果通过nginx,配置https,TLS/SSL 加密,通过防火墙设置信任ip。
解决方案1:nginx 插件了解下。支持 lua
解决方案2:使用 apisix 代替 nginx。apisix 有很成熟的插件管理机制,也支持 lua 插件
方便说下 不用SSL/TSL方案的原因以及当前的应用场景吗?
因为一般Nginx加密以及默认的推荐加密可能就是用的SSL/TSL来进行加密的。
想具体了解下你们的实际应用场景以及选择nginx的原因
解决方法
如果需要其它的加密,
可能就是服务器端跟客户端的程序层次本身的数据加密解密了。
如有问题及时沟通
可以考虑使用 OpenResty
nginx配置https加密访问的详细教程 https://www.jb51.net/article/199033.htm
如有帮助,请采纳
TLS 是加密传输数据,保证数据在传输的过程中中间的人无法解密,无法修改。(本文中将 TLS 与 SSL 作为同义词。所以提到 SSL 的时候,您可以认为和 TLS 没有区别。)
传输的加密并不是很困难,比如双方用密码加密就可以。但是这样一来,问题就到了该怎么协商这个密码。显然使用固定的密码是不行的,比如每个人都要访问一个网站,如果网站使用固定的密码,那么和没有密码也没有什么区别了,每个人都可以使用这个密码去伪造网站。
TLS 要解决的问题就是,能证明你,是你。现在使用的是非对称加密的技术。非对称加密会有两个秘钥,一个是公钥,一个是私钥。公钥会放在互联网上公开,私钥不公开,只有自己知道。只有你有私钥,我才相信你是你。非对称加密的两个秘钥提供了一下功能(本文不会详细介绍这部分原理,只简单提到理解后续内容需要的知识):
公钥加密的数据,只有用私钥可以解密;
私钥可以对数据进行签名,公钥拿到数据之后可以验证数据是否由私钥的所有者签名的。
有了这两点,网站就可以和访问者构建一个加密的数据通道。
首选,网站将公钥公开(即我们经常说的“证书”),访客连接到网站的服务器第一件事就是下载网站的证书。因为证书是公开的,每个人都能下载到此网站的证书,那么怎么确定对方就是此证书的所有者呢?客户端会生成一个随机数,并使用公钥进行加密,发送给服务器:请解密这段密文。
这就是上文提到的功能1,即公钥加密的数据,只有私钥才能解密。服务器解密之后发回来(当然,并不是明文发回来的,详细的 TLS 握手过程,见这里[1]),客户端就相信对方的确是这个证书的所有者。后续就可以通过非对称加密协商一个密码,然后使用此密码进行对称加密传输(性能快)。