📜  创建 Charles 证书 - Python (1)

📅  最后修改于: 2023-12-03 15:07:11.241000             🧑  作者: Mango

创建 Charles 证书 - Python

如果你是一名开发者或者测试人员,你可能已经听说过 Charles,它是一个非常强大的网络代理工具。使用 Charles,你可以监视和记录应用程序的网络流量,方便地调试网络请求,以及模拟不同情况下的网络环境。但是,在使用 Charles 时,你需要安装 Charles 证书,否则就会出现 SSL 连接验证失败的问题。

本文将介绍如何使用 Python 创建 Charles 证书,以便你可以更加方便地使用 Charles 工具。

准备工作

在开始创建 Charles 证书之前,需要先准备好以下工具:

  • OpenSSL
  • Python(版本为 2.7 或以上)

在使用 OpenSSL 生成证书时,需要注意以下问题:

  • 生成证书的 CN(common name) 必须为 "charlesproxy.com"。
  • 生成证书的 key 的密码必须为 "password"。
生成证书

首先,我们需要使用 OpenSSL 生成证书。打开终端,并输入以下命令:

openssl genrsa -des3 -out charles.key 1024
openssl req -new -key charles.key -out charles.csr

接着,需要输入邮件地址、城市名称、公司名称等信息。在输入 Common Name 时,必须填写 charlesproxy.com。

生成完 charles.csr 文件后,我们需要将它发送给 CA 机构签名。不过,因为我们是自己签名,所以我们不需要将它发送给 CA 机构。直接使用以下命令生成证书即可:

openssl x509 -req -days 365 -in charles.csr -signkey charles.key -out charles.crt
导入证书

使用 Python 3.x 内置的 http.server 启动一个 HTTP 服务器,然后在浏览器中访问该服务器。此时会提示信任证书。

需要注意的是,在使用 Charles 时,可能需要将 Charles 证书添加到系统的证书信任库中。

接下来,我们需要将 charles.crt 文件导入到 Charles 工具中。打开 Charles,点击 Help -> SSL Proxying -> Install Charles Root Certificate 即可导入 charles.crt 证书。

到目前为止,我们已经成功创建了 Charles 证书,可以愉快地使用 Charles 工具了!