codecamp

Postman 使用证书

您可以在 Postman 中添加和管理证书,以便在发送请求时启用身份验证。

要连接到使用双向 TLS (mTLS) 的 API,您需要将客户端证书添加到 Postman。双向 TLS 是一种身份验证方法,需要客户端和服务器都使用证书确认其身份。一旦确认了双方的身份,就建立了加密连接。

您还可以将自定义 CA 证书添加到 Postman。如果端点使用在内部证书注册表中注册的证书,则从 Postman 发送的请求将失败并出现“自签名证书”错误。添加自定义 CA 证书将使您能够向端点发送请求而无需关闭 SSL 验证

内容

管理证书

在 Postman 设置中,您可以查看已安装的证书、添加新证书或删除证书。

  1. 设置图标 选择标题中的设置图标 ,然后选择设置。
  2. 选择证书选项卡。

证书选项卡

添加 CA 证书

为避免在发送请求时出现“自签名证书”错误,请将您的自定义 CA 证书添加到 Postman。

  1. 打开CA Certificates旁边的开关。
  2. 为您的 CA 证书选择PEM 文件。(PEM 文件可以包含多个 CA 证书。)

添加 CA 证书

添加客户端证书

要向使用相互 TLS 身份验证的 API 发送请求,请将您的客户端证书添加到 Postman。

  1. 选择添加证书。
  2. 输入证书的主机域(不包括协议)。例如,输入向Postman Echo APIpostman-echo.com发送请求。Host字段支持模式匹配。如果您输入*.example.com,相同的客户端证书将用于所有example.com子域。
  3. (可选)输入自定义端口号以与域关联。如果您不指定端口,Postman 将使用默认的 HTTPS 端口 (443)。
  4. 为您的证书选择CRT 文件和密钥文件,或者为您的证书选择PFX 文件。
  5. 如果您在生成客户端证书时使用了密码,请将其输入框中。否则,将该框留空。
  6. 选择添加。

添加客户端证书

每个客户端证书都特定于一个域。要向更多域发送请求,请为每个域添加适当的证书。不要为同一域添加多个证书。如果您为域添加多个证书,Postman 将使用最后添加的证书。

编辑证书

添加后无法编辑证书。要进行更改,请先删除证书,然后生成新证书并将其添加到 Postman。

Let's Encrypt SSL 证书的有效期为 90 天。Let's Encrypt 建议使用ACME 客户端每 60 天自动更新您的证书。

删除证书

如果您不再需要证书来从 Postman 发送请求,请将其移除。

  • 要删除 CA 证书,请选择 关闭图标 证书旁边的删除图标。
  • 要删除客户端证书,请选择证书旁边的删除。

使用证书

添加客户端证书后,您无需执行任何额外步骤即可在 Postman 中使用该证书。当您向配置的域发出 HTTPS 请求时,Postman 会自动将客户端证书与请求一起发送。证书是使用 OpenSSL 处理发送的,Postman 不会更改证书。

如果您发出 HTTP 请求,Postman 不会发送证书。

确认证书已发送

您可以使用Postman Console确认证书已发送。通过选择 Postman 页脚中的控制台打开 Postman 控制台,然后发送请求。

在下面的示例中,Postman 发送了证书,因为请求使用了https://. 您可以展开请求以查看有关随请求发送的证书的详细信息。

控制台中的证书详细信息

查看证书详细信息

您可以在响应窗格中查看更多证书详细信息。网络信息锁定图标 如果请求是使用 HTTPS 发送的,则网络图标 包括一个挂锁。将鼠标悬停在网络图标上可查看有关随请求发送的证书的信息,以及任何警告或错误,例如自签名证书或过期证书。

网络详情

证书错误故障排除

如果在发送请求时证书验证失败,Postman 会在响应窗格中显示一条错误消息。要修复错误,请关闭请求的 SSL 验证。

要关闭请求的 SSL 验证,请执行以下操作:

  1. 打开请求并选择“设置”选项卡。
  2. 选择启用 SSL 证书验证以关闭此设置。
  3. 再次发送请求。

SSL证书验证

您可以在常规选项卡的Postman 设置中全局关闭 SSL 验证。

如果 SSL 验证关闭,您可以将鼠标悬停 网络信息错误图标 在响应窗格中的网络图标上以获取有关任何证书错误或警告的详细信息。

网络信息错误

您还可以在Postman 控制台中找到有关证书错误的更多信息。

控制台证书错误


Postman 使用 cookie
Postman 生成客户端代码
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }