使用keytool签署CSR

时间:2017-11-20 14:25:40

标签: ssl keytool

我必须在客户端和服务器之间创建SSL连接。我创建了一个密钥对,并用我的私钥签署了我的公钥。服务器不会信任这个,所以我需要让它由CA签名。我认为服务器将信任由与用于签署其自己的证书相同的CA签署的证书。如何使用keytool创建签名证书?很抱歉,如果这是Oracle网站上的重复信息,但由于某种原因,他们的网页不断破坏我的互联网浏览器。

到目前为止,知识基于答案here

1 个答案:

答案 0 :(得分:1)

  

我认为服务器将信任由与用于签署自己的证书相同的CA签名的证书。

在此更正您的假设:系统默认信任各种主要证书颁发机构(CA)(例如:GeoTrust,Entrust,OpenTrust,Verisign等......)。当您通过任何这些已知CA签署CSR时,服务器将默认信任,而不仅仅是签署服务器证书的CA。

在客户端和服务器之间测试SSL连接的方法是使用自签名证书。

  

我创建了一个密钥对,并使用我的私钥

签署了我的公钥

你不应该以客户身份做这件事。服务器应该这样做。如果服务器使用自签名证书,则需要向客户端提供该证书,以便客户端可以信任它们以建立SSL连接。

作为服务器,您可以使用keytool创建自签名证书。当您使用keytool生成密钥对时,它会询问您一些属性,如commonNameorganizationName等...使用这些属性,keytool将创建一个自签名证书并将其与私钥。您所要做的就是使用keytool -exportcert命令导出此证书。完成此部分后,您将使用此证书来保护服务器。

一旦服务器受到保护,服务器应该为客户端提供此证书,因为它是自签名的,并且客户端的系统在您明确信任之前不会信任它。如果服务器使用由CA签名的证书进行保护,则无需向客户端提供任何证书,因为如果它是已知的CA,则客户端系统已经信任该证书。