Openssl

openssl:使用非 DNS 主題替代名稱生成證書請求

  • December 14, 2021

要使用 openssl 為主機創建包含主題備用名稱 (SAN) 的證書請求,我可以使用這樣的配置文件(截斷):

[req]
req_extensions = v3_req
[ v3_req ]
subjectAltName = @alt_names
[alt_names]
DNS = xyz.example.com

如果我需要提供專有名稱或使用者主體名稱,我應該如何配置alt_names使用者證書請求部分?

例如,我試過

[alt_names]
UPN = xyz@example.com

但我得到了這個錯誤:

Error Loading request extension section v3_req
5356:error:22075075:X509 V3 routines:v2i_GENERAL_NAME_ex:unsupported option:.\crypto\x509v3\v3_alt.c:557:name=userPrincipalName
5356:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in extension:.\crypto\x509v3\v3_conf.c:93:name=subjectAltName, value=@alt_names

您幾乎可以指定 CA 允許的任何內容。

相關的 RFC 是RFC5280。它在第 4.2.1.6 節中說。“主題備用名稱”

主題替代名稱擴展允許身份綁定到證書的主題。這些身份可以包括在證書主題欄位中的身份之外或代替身份。定義的選項包括 Internet 電子郵件地址、DNS 名稱、IP 地址和統一資源標識符 (URI)。存在其他選項,包括完全本地定義。可以包括多個名稱形式和每個名稱形式的多個實例。每當將此類身份綁定到證書中時,必須使用主題替代名稱(或頒發者替代名稱)擴展;但是,DNS 名稱也可以使用第 4.1.2.4 節中描述的 domainComponent 屬性在主題欄位中表示。

您應該閱讀該部分的其餘部分,然後與您的 CA 核實他們支持的內容。值得注意的是,您的 CA必須驗證所有主題備用名稱是否正確。

要使用電子郵件地址,RFC 在第 4.1.2.6 節中說

生成具有電子郵件地址的新證書的一致性實現必須使用主題替代名稱擴展(第 4.2.1.6 節)中的 rfc822Name 來描述此類身份。在主題可分辨名稱中同時包含 emailAddress 屬性以支持舊實現已被棄用但允許。

因此,您應該使用 rfc822Name 而不是 UPI。

引用自:https://serverfault.com/questions/596909