我有一个烧瓶应用程序(客户端),从那里我需要发送一些数据到服务器(目前是另一个烧瓶应用程序),并获得一些相应的数据。我需要使用REST,因为服务器可以是以后的任何东西(当前的烧瓶应用程序是一个用于测试的虚拟服务器)。我需要在客户端和服务器之间建立SSL连接。我看到SSL在几个步骤中工作:
这就是我想要达到的目标。如果我的SSL概念错了,请纠正我。
我已经看到了下面的实现,并完美地为我工作。
客户端使用requests.get()和verify=<path to server SSL certificate>。我已经使用openssl为服务器生成了SSL证书,如下所示。
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365但我不认为以上7个步骤都在这里。实现SSL的实际方法是什么?任何帮助都将不胜感激。
发布于 2018-03-05 09:10:01
对,是这样。
对,是这样。
对,是这样。
不正确。现在要做到这一点已经太晚了。
不正确。没有这样的步骤。见RFC 2246和后继者。
不对,也是。
不对,也是。
客户端和服务器之间进一步的数据交换是通过用私钥加密数据来实现的。
不对,也是。TLS的工作方式是:(1)通过服务器证书和PKI建立信任;(2)通过客户端证书可选地建立信任;(3)通过密钥协商过程建立对称会话密钥,其中实际会话密钥从未被传输。
这就是我想要达到的目标。
不,不是。你在尝试建立一个TLS连接。它所做的其实与你无关。
如果我的SSL概念错了,请纠正我。
你完全错了。
我已经使用openssl为服务器生成了SSL证书,如下所示。
不,没有。您已经创建了证书签名请求(CSR)。在得到证书颁发机构(CA)的签名之前,这是毫无用处的。它不是SSL证书。
在上面的实现方法中,客户端为每个rest调用验证服务器的证书,但我不想这样做。我想在客户机和服务器之间创建一个加密的连接,然后进一步的数据交换应该被加密。因此,我认为最初创建客户机和服务器之间的加密连接是没有的。另外,来自客户端的私钥生成也丢失了。我想实现SSL,我认为TLS不同于SSL。如果我错了,请纠正我。
你错了。TLS支持会话恢复,它允许缩短握手,从而消除证书交换步骤。“来自客户端的私钥生成”步骤缺失,因为它不一定存在。你猜的。
https://stackoverflow.com/questions/49104377
复制相似问题