当前位置: 首页 > 知识库问答 >
问题:

完成TLS握手前的OCSP撤销检查

曹智
2023-03-14

在完成TLS握手之前,我需要使用Go作为客户端对服务器证书进行OCSP吊销检查,即[启动握手->获取服务器证书->检查吊销状态->如果被吊销则中止],而不是[启动握手->完成握手->检查吊销状态]

共有1个答案

白驰
2023-03-14

您可以在tls.config对象中设置VerifypeerCertificate,并在吊销检查失败且希望中止握手时,让指向函数返回非零错误。

从文档中:

// VerifyPeerCertificate, if not nil, is called after normal
// certificate verification by either a TLS client or server. It
// receives the raw ASN.1 certificates provided by the peer and also
// any verified chains that normal processing found. If it returns a
// non-nil error, the handshake is aborted and that error results.
//
// If normal verification fails then the handshake will abort before
// considering this callback. If normal verification is disabled by
// setting InsecureSkipVerify, or (for a server) when ClientAuth is
// RequestClientCert or RequireAnyClientCert, then this callback will
// be considered but the verifiedChains argument will always be nil.
VerifyPeerCertificate func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error // Go 1.8
 类似资料:
  • 我对PKI的世界是新的,一般的证书。我正在写一个服务,需要验证证书链。 感谢所有的指示和帮助提前。感激不尽。 致以最诚挚的问候

  • 我正在制作一个有游戏的网站。对于游戏,我需要发送数据。加载页面时一切正常,但我无法让握手生效。 socketReq变量存在是因为我不希望任何人直接从浏览器连接到localhost:25580。我的发送和接收功能在不同的线程中,它们将在握手后启动。 JS中新WebSocket(ws://localhost:25580)的结果是 到“ws://localhost:25580/”的WebSocket连接

  • 我正在go中运行https web服务器。我正在使用angular web应用程序(Chrome浏览器)对其进行测试,该应用程序可以对web服务器进行ajax调用。 如果我不断地点击网络服务器,一切似乎都正常。但每当我让它闲置一段时间并点击web服务器时,来自浏览器的ajax调用都不会得到响应。我几乎总是在服务器日志中看到此日志行。 我可以确认IP地址是我的IP地址。 我像这样启动我的https服

  • 我已经创建了自己的私有注册表(私有注册表),但我无法将图像推送到它。比我得到以下错误: 正在运行的注册表的日志显示以下内容: 我无法卷曲我的注册表(超时)。以下是我执行的步骤: 首先,我创建了自签名证书: 我已创建注册表,它将使用以下证书: 我授予了正确的权限: 我创建了:,并复制了我的在它里面。我编辑了我的并添加了:(我的内部ip和注册表名) 我还重新启动了docker和我的注册表。 编辑:

  • 我有一个关于TLS初次握手的问题。(我不是专家,所以我想要一个简单易懂的解释)。 根据维基百科: *谈判阶段: 客户端发送ClientHello消息,指定其支持的最高TLS协议版本、随机数、建议的密码套件列表和压缩方法 服务器用一条ServerHello消息进行响应,其中包含从客户端提供的选项中选择的协议版本、随机数、密码套件和压缩方法。服务器还可以发送会话id作为消息的一部分,以执行恢复的握手*

  • 我需要与外部服务连接,而且我的客户端身份验证有问题。该服务需要证书、用户名和密码以及请求。 我正在使用Windows Server 2008 R2。 我已经收到带有证书的PKCS#7包并导入: 本地计算机/个人的SSL证书(仅含公钥) 中间CA和根CA到本地计算机/受信任的RootCertificationAuthorities 我已经在Windows注册表中启用了TLS 1.0、1.1、1.2客