我网络上的服务器使用由 RapidSSL CA 颁发的证书进行签名,但不提供完整的颁发者链(RapidSSL CA 的证书由受信任的根授权机构 GeoTrust CA 颁发)。
当我使用 Firefox 访问该站点时,出现以下错误:
The certificate is not trusted because no issuer chain was provided.
(Error code: sec_error_unknown_issuer)
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用 IE 或 chrome 连接到该站点,则它可以工作,并且我注意到 RapidSSL 之后会作为中间 CA 加载。我不明白 Chrome/IE(我假设它使用 Windows 证书存储)如何知道将 RapidSSL 添加为中间 CA。
当我openssl s_client用来调试连接时,我得到了预期的行为(根据我的说法)。
仅使用 GeoTrust 作为 CA 时,我得到以下信息:
Verify return code: 21 (unable to verify the first certificate)
Run Code Online (Sandbox Code Playgroud)
仅使用 RapidSSL 作为 CA:
Verify return code: 2 (unable to get issuer certificate)
Run Code Online (Sandbox Code Playgroud)
两者同时使用时:
Verify return code: 0 (ok)
Run Code Online (Sandbox Code Playgroud)
谁能帮我理解 …