使用keytool签署CSR



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

到目前为止的知识是基于这里的答案

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

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

您可以使用自签名证书来测试客户端和服务器之间的SSL连接。

我创建了一个密钥对,并用我的私钥对我的公钥进行了签名

您不应该作为客户这样做。服务器应该执行此操作。如果服务器使用自签名证书,则需要向客户端提供该证书,以便客户端可以信任它们进行SSL连接。

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

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

最新更新