Algorithm 如何在OpenSSL中为X.509证书使用不同的加密算法?

Algorithm 如何在OpenSSL中为X.509证书使用不同的加密算法?,algorithm,encryption,openssl,ssl-certificate,x509,Algorithm,Encryption,Openssl,Ssl Certificate,X509,我一直在为一家公司的内部使用生成证书,随着时间的推移,这些证书可能会变得越来越普遍(而不仅仅是在一个内部网站上)。我注意到,当使用OpenSSL时,生成的证书显示为在Chrome中使用AES_256_CBC,如下所示 我一直在想,是否可以在OpenSSL中使用其他加密算法?我看到其他网站的证书显示为使用算法,如RC4_128和CAMELLIA_256_CBC 如果有帮助,我安装了两个版本的OpenSSL;0.9.8l和1.0.1c,我使用的是Windows7。这些证书也被链接起来;一个根证书、

我一直在为一家公司的内部使用生成证书,随着时间的推移,这些证书可能会变得越来越普遍(而不仅仅是在一个内部网站上)。我注意到,当使用OpenSSL时,生成的证书显示为在Chrome中使用AES_256_CBC,如下所示

我一直在想,是否可以在OpenSSL中使用其他加密算法?我看到其他网站的证书显示为使用算法,如RC4_128和CAMELLIA_256_CBC

如果有帮助,我安装了两个版本的OpenSSL;0.9.8l和1.0.1c,我使用的是Windows7。这些证书也被链接起来;一个根证书、一个中间证书,然后是用于网站的证书

谢谢您的时间。

简短回答 是的,您可以使用其他加密算法,但X.509证书在其中的作用很小

为了做到这一点而不修改客户端,您必须配置服务器,使某些密码套件优于其他密码套件(例如,对于Apache,请查看配置)

如果可以修改客户端而不能修改服务器,则必须在握手过程中重新排序客户端提供的密码套件。您首选的算法应该排在第一位。或者,您可以删除那些您不喜欢的加密算法(即使这意味着连接可能会因此而失败)

长话短说 SSL/TLS连接上使用的加密算法在握手过程中协商。客户机向其支持的服务器发送根据其首选项排序的数据。服务器选择它最喜欢的一个

密码套件(例如,TLS_RSA_WITH_AES_128_CBC_SHA)是一个元组,指示必须使用哪些算法:

  • 认证
  • 密钥交换
  • 批量加密
  • 密码摘要
服务器X.509证书的内容在此过程中起着很小的作用,因为它限制了身份验证和密钥交换的方式。如果服务器证书包含RSA密钥,则密码套件不能是以
TLS\u DH\u DSS.*
开头的任何密码套件

理论上,服务器X.509证书独立于批量加密算法。然而,由于并非所有可能的组合都被覆盖(或由客户机提供),服务器cetificate中的密钥类型可能会排除某些密码