我正在实现一个证书自动化服务,我想通过在部署后发出https请求来验证证书是否正确部署,https响应应该给我带来新部署的证书的信息,比如发布日期和到期日期。
我知道这是套接字编程的一部分,所以我想知道是否有人知道我已经可以使用一些包了。
如果没有这样的包,我可能会更深入地学习一些握手流程,并直接使用套接字。
Ps:我所知道的最接近的事情是,当在JAVA中实现自定义x509信任管理器时,它确实支持从客户端验证证书。
发布于 2022-07-21 08:49:23
https://www.npmjs.com/package/certnames包激发了我的灵感,然后我发现我可以直接使用捆绑的tls
模块来完成它,因为证书是通过tls层传输的,所以我们不需要发出http请求就可以得到它。
import * as tls from 'tls';
test('test', function (done) {
let host = 'httpbin.org';
let socket = tls.connect({
port:443,
host,
servername: host, // this is required in case the server enabled SNI
}, () => {
let x509Certificate = socket.getPeerX509Certificate();
expect(x509Certificate.subject).toBe('CN=httpbin.org');
done();
});
});
https://stackoverflow.com/questions/73062479
复制相似问题