You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP通过SSL证书对接REST API:仅持.cer公钥无私钥和.pem如何发起请求

公钥证书附加到API请求的操作方案

你当前场景下仅需使用对方提供的公钥证书校验服务端身份,无需持有对应私钥,按以下步骤操作即可完成接口调用:

1. 证书格式转换

首先要把.cer格式证书转为接口请求工具通用的.pem格式:

  • 若打开Certificate.cer文件后,内容以-----BEGIN CERTIFICATE-----开头、-----END CERTIFICATE-----结尾,直接将文件后缀重命名为.pem即可;也可以直接复制API提供方给出的证书文本,保存为后缀为.pem的文件直接使用
  • 若Certificate.cer是二进制文件,使用openssl命令完成转换:
    openssl x509 -inform der -in Certificate.cer -out Certificate.pem

2. 不同场景下的证书附加方式

2.1 curl 命令调用

直接通过--cacert参数指定pem证书路径即可:
curl --cacert ./Certificate.pem https://api:555/[你的接口路径]

2.2 Python requests 库调用

在请求的verify参数中传入pem证书路径即可:

import requests

response = requests.get(
    url="https://api:555/[你的接口路径]",
    verify="./Certificate.pem"
)

不要为了方便直接设置verify=False,会存在中间人攻击风险

2.3 Java 项目调用

先将pem证书导入自定义信任库:
keytool -import -alias api_server_cert -file ./Certificate.pem -keystore ./api_truststore.jks
执行命令后按提示设置信任库密码即可。

调用接口前配置JVM信任库参数:

// 加载自定义信任库
System.setProperty("javax.net.ssl.trustStore", "./api_truststore.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "你设置的信任库密码");
// 后续正常发起HTTPS请求即可

额外说明

  • API提供方给出的123.33.33.33 22为SSH服务相关信息,和本次API接口调用无关,无需使用
  • 整个调用过程仅需使用服务端公钥证书校验身份,不需要你持有对应私钥

内容的提问来源于stack exchange,提问作者Hosain Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:06:03