最近在配置 SSL ,连接公司测试内网一直 TLS 握手失败,显示 bad certificate ,证书无法验证通过。查了一下 SSL 验证过程,大致是服务器发送一个证书,包含 CA 私钥加密后的数字签名,客户端用对应的 CA 公钥解密。
然后还是有一些问题请教 v 站大?
-
自签名的话是至少生成两张证书吗?我以为是一张 root certificate 交给客户端并添加信任列表,另外一张 server certificate 由服务器发送 server hello 。(假设不需要验证客户端身份)
-
客户端如果要信任测试的内网服务器,是否需要问 IT 管理员要 root certificate ?我的情况还比较复杂,是 arduino 单片机作为客户端,我猜需要要到 root certificate 并且添加到 firmware 里面才能连接。
-
server certificate 包含了 CSR 信息以及数字签名?数字签名是由 CA 私钥加密的? CSR 信息里面有服务器公钥? root certificate 包含什么?我以为应该有 CA 公钥吧,不然客户端怎么检验数字签名?