Centos / Fedora密码套件

我使用openssl命令在我的Fedora CLI服务器上创build了一个自签名证书

openssl req -x509 -sha256 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 100 

从我的理解,这是TLS的工作原理:

  1. 客户端将密码套件首选项发送到服务器
  2. 服务器select密码套件,并将证书和(rsa)公钥发送给客户端
  3. 客户端生成Premaster密钥(主要是随机位)。 用给定的公钥encryption它,并将其发送到服务器。
  4. 客户端和服务器都独立地生成主密钥,然后生成会话密钥。 会话密钥是提供“安全通道”的对称密钥。

问题1.如何找出用于会话密钥的对称encryptionalgorithm?

问题2 openssl命令与openssl ciphers命令有什么关系?

问题3. TLS是否使用Diffie Hellman? 我是否在使用Diffie Hellman?

问题4.我看到一个networkingpost,build议禁用一些密码。 我怎样才能做到这一点?

任何帮助将不胜感激,谢谢

编辑

问题5.因此,如果我的应用程序(比如Apache HTTP Server)同时使用TLS和x509证书,并且客户端使用https请求连接到该服务器,那么商定的密码套件将如下所示:TLS_RSA_WITH_NULL_SHA ? (我刚刚从我的命令中放入了这些元素)

我认为你对X.509证书和TLS感到困惑。 TLS只是证书的一个(但是最大的)应用程序。

  1. 会话密钥algorithm取决于应用程序。 例如,如果您使用的是Apache Webserver for TLS的证书,则可以在Apache的configuration文件中configuration可能的algorithm列表。 一旦您configuration了一个Web服务器来使用您的证书和私钥,您可以检查哪些algorithm与各种工具一起使用,如openssl s_clientnmap或者您的服务器是否可以通过互联网使用诸如SSL Labs
  2. 没有,除了他们都以openssl开头。 OpenSSL是一个使用多种encryption技术的工具包。 上面的命令生成一个密钥对和一个X.509证书; openssl ciphers命令使用与configurationApache等应用程序时相同的“cipherstring”逻辑列出了SSL / TLS密码组,这提供了一种方便的方式来testing这些设置。 openssl程序也可以用来encryption/解密文件,计算消息摘要和随机数等等。
  3. TLS可以使用您的服务器和客户端同意的许多algorithm。 您没有使用Diffie-Hellman来创buildX.509证书。 该证书可以用于TLS,它可以使用Diffie-Hellman的普通(整数)或椭圆曲线forms。
  4. 启用和禁用密码通常由应用程序(如Apache)控制,而不是由证书控制,虽然有一些angular落案例(例如,DSA证书与RC4不兼容)。