【问题标题】:Using and then removing self-signed certificate localhost使用然后删除自签名证书 localhost
【发布时间】:2021-06-26 07:34:05
【问题描述】:

问题背景:

作为计算机网络课程作业的一部分,我的任务是实现一个代理服务器(使用 python socketssl 模块)来处理服务器之间的 https 通信浏览器和源服务器(我的浏览器想要与之通信的真实服务器)。

到目前为止我做了什么:

我已经使用 ssl 套接字实现了上述要求,并且还生成了自签名 'cert.pem' 'key.pem' 文件。

我需要做什么:

现在我只需要告诉我的浏览器(kubuntu 20.04 上的 chrome 89)接受这个自签名证书,然后测试我的代理服务器的工作。

this stackoverflow question 阅读,我可以看到我必须: (1) 成为我自己的 CA (2) 然后将我的 SSL 证书签署为 CA。 (3) 然后将 CA 证书(不是我服务器上的 SSL 证书)导入 Chrome。

我的困惑/问题:

因此,如果我这样做,当我最终完成这项任务时,我如何反转所有这些步骤以使我的浏览器处于进行所有这些更改之前的状态。另外,如何撤销“成为你自己的 CA”并删除我的 CA 签署的 SSL 证书。 基本上,我希望我的系统恢复到我进行所有这些更改之前的状态。

更新:

我已完成之前概述的步骤,但现在出现错误。

这是我的代码的 sn-p:

serv_socket = socket(AF_INET, SOCK_STREAM)
serv_socket.bind(('', serv_port))
serv_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context = context.load_cert_chain('cert.pem', 'key.pem')
context.set_ciphers('EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH')

serv_socket.listen(10)

socket_to_browser, addr = serv_socket.accept()

conn_socket_to_browser = context.wrap_socket(socket_to_browser, server_side=True)

在最后一行conn_socket_to_browser = context.wrap_socket(socket_to_browser, server_side=True) 抛出异常:[SSL: HTTPS_PROXY_REQUEST] https 代理请求 (_ssl.c:1123)

我做错了什么?

【问题讨论】:

    标签: ssl networking https certificate self-signed


    【解决方案1】:

    就像“成为你自己的 CA”听起来一样迷人,使用 openssl 基本上可以归结为创建一个自签名证书,然后创建一个目录来存储一些特定于 CA 的配置(我不完全记得细节,但我认为这只是一些与 CN 和序列号相关的文件)所以基本上扭转“成为你自己的 CA”步骤就像删除这个目录以及你使用的私钥和自签名证书一样平凡加利福尼亚州。就是这样,CA 不复存在了。

    对于 chrome 返回之前的状态,您只需转到添加 CA 证书的 CA 列表,选择它并删除它。 Chrome 将停止接受您的 CA 签署的证书。

    关于您的新问题...在我看来,您已经开发了某种反向代理(意味着您期望正常的 HTTPS 请求然后重定向到真实服务器)但是您已将 Chrome 配置为将其用作转发代理。在这种情况下,Chrome 不会向它发送正常的 HTTPS 请求,它会发送一个特殊的非加密 CONNECT 命令,只有在收到非加密响应后,它才会协商 TLS 连接。这就是为什么 openssl 说“https 代理请求”的原因,因为它检测到了“https 代理请求”(一个 CONNECT 命令),而不是正常的 TLS 协商。

    你可以看看How can a Python proxy server (using SSL socket) pretend to be an HTTPS server and specify my own keys to get decrypted data?

    它是 python,但我想你会明白的

    【讨论】:

    • 是的,我知道我做错了什么。原来是这样。
    猜你喜欢
    • 2017-04-18
    • 2017-03-11
    • 2021-08-07
    • 2011-12-31
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多