常见问题解答
全球覆盖、不限文案、免费测试
电话/微信:182-0071-8221

STIR/SHAKEN证书申请实操:从STI-PA到Identity Header,开发者需要准备哪些材料?

2026-11-12 23:41:09

  **STIR/SHAKEN证书的申请,卡住最多开发者的不是技术难度,而是“不知道从哪里开始、证书长什么样、该用什么格式”。**

  现实是:证书不由FCC直接签发,也不由SIP Trunking提供商“赠送”。获取一张可用于生产签名的STIR/SHAKEN证书,需要沿着一条**三方链条**完成:**STI-PA(政策管理机构)→ 获取SPC Token → FCC授权的STI-CA(证书颁发机构)** 。而到了部署阶段,证书和私钥的格式(PEM/X.509)、算法要求,以及SIP Trunking平台的兼容性,决定了这张证书能不能真正被“用起来”。

  自2025年9月18日起,FCC进一步收紧了规则:**有STIR/SHAKEN实施义务的服务提供商必须使用自己获取的证书签名,不能依赖第三方供应商的证书**。这意味着“借用”或“转售”证书的路径已经被关闭,开发者必须走完从STI-PA到证书的完整流程。

  销售一、证书从哪里来:STI-PA → SPC Token → STI-CA的三方链条

  销售1.1 第一步:在STI-PA注册并获取SPC Token

  STI-PA(Secure Telephone Identity Policy Administrator)目前由**iconectiv**运营。它是整个SHAKEN生态的“准入登记处”,负责验证你是否是一个有资格参与的服务提供商。

  **前置条件:OCN(Operating Company Number)** 。STI-GA的政策明确:服务提供商**必须持有OCN**才能参与SHAKEN生态。OCN通常与FCC Form 499A申报关联,这是很多开发者容易忽略的第一道门槛。

  **注册流程**:在STI-PA网站完成**服务提供商账户注册**,提交企业信息并缴纳年费。注册通过后,STI-PA会发放**SPC Token(Service Provider Code Token)**——这是后续向CA申请证书时证明你“有权申请”的授权凭证。

  **开发者需要准备的材料**:企业法律名称、OCN、FCC Form 499申报信息、技术联系人信息。SPC Token本身是一个授权令牌,不是X.509证书。

  销售1.2 第二步:用SPC Token向FCC授权的STI-CA申请证书

  拿到SPC Token后,下一步是选择一家**FCC授权的STI-CA**来签发X.509证书。FCC授权列表包括**TransNexus、Sansay、Peeringhub、Martini Security、Neustar、NetNumber、Ribbon、Somos、GBSDTech**等。不同CA的交付方式不同:有的提供Web门户上传CSR,有的提供**ACME自动化接口**。

  **核心机制**:CA在签发证书前,会通过ACME的`spc-token`挑战来验证你的SPC Token有效性。流程是:ACME客户端发起申请 → CA返回`spc-token`挑战 → 客户端将**SPC Token**作为challenge response提交 → CA向STI-PA验证Token签名 → 验证通过后签发证书。

  这意味着,**SPC Token是连接STI-PA和STI-CA的关键授权凭证**,没有它,CA不会签发证书。

  销售1.3 证书的最终形态:X.509 PEM,ECDSA with SHA-256

  开发者最终拿到的是一张**X.509数字证书**,格式要求如下:

项目 要求
证书格式 PEM格式(.pem、.cer或.crt均可,但PEM是生产签名的标准格式)
私钥格式 未加密的PEM格式私钥,算法为EC-P256或RSA-2048
签名算法 ECDSA with SHA-256(推荐且常见)
证书链 完整链(终端证书 + 中间CA),需按顺序拼接为单个PEM文件
x5u托管 证书必须托管在一个公网可访问的HTTPS URL上,供验证方在Identity Header中通过x5u参数获取

  **关键区分**:**SPC Token是“授权令牌”,不是证书**。它证明你有权申请证书,但本身不能用于签名呼叫。签名的密码学操作由**X.509证书 + 对应的PEM私钥**完成。

  销售二、开发者需要准备的四类材料

  销售2.1 密码学材料

材料 格式/要求 用途
私钥 未加密的PEM格式,EC-P256或RSA-2048 用于对PASSporT令牌进行密码学签名
CSR PKCS#10格式,必须包含TNAuthList扩展(OID 1.3.6.1.5.5.7.1.26) 提交给STI-CA申请证书;TNAuthList中的SPC值必须与SPC Token一致
证书 X.509 PEM格式,ECDSA SHA-256 随Identity Header中的x5u URL被验证方获取,用于验证签名

  **TNAuthList是STIR/SHAKEN证书区别于普通TLS证书的核心扩展**。它把证书与你的**SPC(Service Provider Code)** 绑定在一起。CSR中如果缺少TNAuthList扩展,或其中的SPC值与SPC Token不一致,CA会拒绝签发。

  销售2.2 授权与注册材料

  - **OCN**:参与SHAKEN生态的前置条件

  - **STI-PA账户凭证**:用户名、密码、SP ID

  - **SPC Token**:从STI-PA获取,用于ACME `spc-token`挑战

  销售2.3 托管材料

  - **公网HTTPS URL(x5u)** :用于托管X.509证书。这个URL必须持续可用,因为验证方在每次呼叫验证时都可能实时获取证书。Telnyx的托管证书服务要求证书托管在公共HTTPS URL上,私钥以PEM格式上传。

  销售2.4 SIP Trunking侧的部署材料

  证书到手后,还需要SIP Trunking平台能够**使用这张证书进行签名**。不同平台的支持模式不同:

平台 签名模式 对开发者的要求
Telnyx Hosted Certificate 你提供x5u URL + PEM私钥,Telnyx的托管签名服务用你的证书签名 证书托管在公网HTTPS,私钥上传至Telnyx
自建STI-AS(如OpenSIPS/Sansay) 你自己部署签名服务,使用证书+私钥直接签名 需要配置私钥路径、x5u URL和默认attestation等级
Plivo Zentrunk Plivo用自己的DID和证书签名,A级仅对Plivo DID授予 使用Plivo DID时无需自行申请证书;外部号码则无法获得A级

  **关键认知**:**“拥有证书”不等于“能用证书签名”** 。如果你的SIP Trunking提供商不提供“托管证书”或“自带证书签名”的能力,证书本身无法接入呼叫流程。选型SIP Trunking时,必须确认平台是否支持**用客户自有证书签名**。

  销售三、证书如何变成Identity Header:PASSporT的签名链条

  开发者常问的“证书和Identity Header是什么关系”,答案是一条清晰的密码学链条:

  1. **呼叫发起时**,STI-AS(签名服务)创建一个**PASSporT令牌**,其中包含主叫号码(`orig`)、被叫号码(`dest`)、签发时间(`iat`)和attestation等级(A/B/C)。

  2. **PASSporT令牌使用你的X.509证书对应的私钥进行签名**,签名算法为ECDSA SHA-256。

  3. **签名后的PASSporT被放入SIP INVITE的Identity Header中**,同时携带`x5u`参数指向你的证书的公共HTTPS URL。

  4. **验证方(终止运营商)** 从`x5u` URL获取你的X.509证书,用证书中的公钥验证PASSporT签名,并检查TNAuthList中的SPC是否覆盖主叫号码,最终确定attestation等级。

  **这意味着**:证书的**x5u URL必须持续可访问**,私钥必须与证书严格匹配,TNAuthList必须正确覆盖你实际使用的主叫号码。任何一环断裂,签名验证失败,attestation等级会降级或呼叫被标记。

  销售四、ACME自动化:从“手工申请”到“证书生命周期管理”

  STIR/SHAKEN证书不是“申请一次就永久有效”。证书有有效期(部分CA提供1–365天不等的有效期),过期后签名会失效,attestation等级会下降。手工管理证书续期在规模化运营中不可行。

  **ACME(RFC 8555)是STIR/SHAKEN证书自动化的标准路径**。支持ACME的STI-CA(如Peeringhub、Martini Security、Sansay等)允许你通过ACME客户端自动完成:

  - 生成私钥和CSR(含TNAuthList扩展)

  - 通过`spc-token`挑战提交SPC Token完成授权

  - 获取X.509证书

  - 在证书到期前自动续期

  **Python工具链**:`stir-shaken-toolkit`(Peeringhub开源)提供了完整的ACME工作流,包括CSR生成、SPC Token请求、证书签发和检查。配置时需要STI-PA凭证(`STIPA_USER_ID`、`STIPA_PASSWORD`、`STIPA_SP_ID`)、SPC(`STIPA_SPC`)和X.509主题信息。

  **Certify The Web**等ACME客户端也支持STIR/SHAKEN证书,前提是CA支持**Authority Token扩展(TNAuthList标识符)** 。

  **对开发者的建议**:如果计划长期运营美国SIP Trunking,**从第一天就采用ACME自动化**,而不是手工下载证书后手动上传。证书过期的后果不是“警告”,而是呼叫签名失效和attestation降级。

  销售五、开发者实操检查清单

阶段 检查项 合格标准
STI-PA 是否持有OCN 有OCN和FCC Form 499申报
STI-PA 是否完成STI-PA注册 有有效的STI-PA账户和SP ID
STI-PA 是否获取SPC Token Token有效,SPC值与后续CSR一致
证书申请 私钥格式 未加密PEM,EC-P256或RSA-2048
证书申请 CSR是否含TNAuthList OID 1.3.6.1.5.5.7.1.26,SPC值正确
证书申请 证书格式 X.509 PEM,ECDSA SHA-256
证书申请 证书链是否完整 终端证书+中间CA,按正确顺序拼接
托管与部署 x5u URL 公网HTTPS可访问,持续可用
托管与部署 SIP Trunking平台是否支持自有证书 平台支持Hosted Certificate或自建STI-AS
托管与部署 私钥与证书是否匹配 用openssl验证key pair一致
生命周期 是否配置ACME自动续期 证书到期前自动续期,无人工干预
生命周期 是否监控证书有效期 到期前30天告警

  销售总结

  **STIR/SHAKEN证书的获取,是一条从OCN到STI-PA、从SPC Token到STI-CA、最终落到X.509 PEM证书和Identity Header的完整链条。** 开发者需要准备的不是一张“证书文件”,而是一组相互绑定的材料:**OCN(准入资格)、SPC Token(授权凭证)、PEM私钥(签名工具)、含TNAuthList的CSR(申请载体)、X.509 PEM证书(验证载体)、公网HTTPS x5u URL(托管载体)** ,以及一个**支持自有证书签名的SIP Trunking平台**。

  **最容易被低估的两个环节**:一是**TNAuthList扩展**——没有它,CA不会签发可用于STIR/SHAKEN的证书;二是**SIP Trunking平台的自有证书支持能力**——证书在手但平台不支持托管签名,等于证书无法进入呼叫流程。把这两点前置确认,比在证书申请环节反复调试更省时间。

本文链接:https://www.lanlansms.com/faq/800.html

联系我们--即刻申请免费测试账号

点击拨号:182-0071-8221