使用DHE-RSA密码套件与服务器建立OpenSSL连接
使用DHE-RSA密码套件与服务器建立OpenSSL连接
我正在为一个嵌入式Linux设备添加HTTPS支持。我尝试使用以下步骤生成一个自签名证书:\n
openssl req -new > cert.csr openssl rsa -in privkey.pem -out key.pem openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001 cat key.pem>>cert.pem
\n这个方法可行,但在使用Google Chrome等浏览器时会出现一些错误提示:\n
\n这可能不是您要找的网站!
\n 该网站的安全证书不受信任!\n
\n我是否漏掉了什么?这是否是构建自签名证书的正确方法?
问题的出现原因是浏览器使用预定义的信任锚点列表来验证服务器证书,自签名证书无法追溯到可信锚点。解决方法是创建自己的CA(证书颁发机构),通过签名服务器的CSR(证书签名请求),将服务器证书安装在服务器上,并将CA证书安装在客户端上。
创建自己的CA的步骤如下:
1. 使用openssl req
命令创建一个带有CA: true
和正确密钥用法的自签名证书。这意味着Subject和Issuer是同一个实体,CA在Basic Constraints中设置为true,在密钥用法中使用keyCertSign
和crlSign
(如果使用CRLs),并且Subject Key Identifier(SKI)与Authority Key Identifier(AKI)相同。
2. 根据Stack Overflow上的问答(链接:https://stackoverflow.com/questions/21297139/21340898#21340898),将自己的CA导入到浏览器使用的信任存储中。
将服务器证书签名请求的步骤如下:
1. 创建服务器的CSR。
2. 使用CA密钥签名服务器的CSR。
3. 在服务器上安装服务器证书。
4. 在客户端上安装CA证书。
在Chrome浏览器中,可能需要进行以下操作:
1. 将IPv4和IPv6 localhost添加到SAN中。
2. 将CA证书的主题和主题备用名称(SAN)中的DNS名称设置为通用名称(CN)。
通过以上步骤创建的自签名证书将遵循CA/Browser Forum的要求,避免了浏览器的安全警告。
在文章中还提到了关于处理X.509/PKIX证书中DNS名称的其他规则的相关文档,包括RFC 5280、RFC 6125、RFC 6797、RFC 7469以及CA/Browser Forum的基线要求和扩展验证指南。
总结起来,解决使用DHE-RSA密码套件与OpenSSL连接到服务器的问题,可以通过创建自己的CA和签名服务器的CSR来避免浏览器的安全警告。将DNS名称放在主题备用名称(SAN)中,并将CA证书导入到浏览器的信任存储中。
问题的原因和解决方法如下:
问题原因:
根据内容中的描述,问题是在使用OpenSSL连接到支持DHE-RSA密码套件的服务器时出现的。具体原因没有明确提及,但可以推测可能是由于配置参数的问题或者版本兼容性的问题导致的。
解决方法:
根据内容中提供的命令示例,可以使用以下方法解决该问题:
1. 对于OpenSSL版本≥1.1.1的系统,可以使用以下命令:
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 \ -nodes -keyout example.com.key -out example.com.crt -subj "/CN=example.com" \ -addext "subjectAltName=DNS:example.com,DNS:*.example.com,IP:10.0.0.1"
如果希望使用ECC而不是RSA,可以指定不同的加密参数。
2. 对于OpenSSL版本≤1.1.0的旧系统,如Debian ≤ 9或CentOS ≤ 7,需要使用更长的命令:
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 \ -nodes -keyout example.com.key -out example.com.crt -extensions san -config \ <(echo "[req]"; echo distinguished_name=req; echo "[san]"; echo subjectAltName=DNS:example.com,DNS:*.example.com,IP:10.0.0.1 ) \ -subj "/CN=example.com"
上述方法提供了使用OpenSSL连接到支持DHE-RSA密码套件的服务器的解决方案。
问题:如何使用openssl与支持DHE-RSA密码套件的服务器建立连接?
原因:在上述内容中,并没有提到与DHE-RSA密码套件的服务器建立连接的方法。
解决方法:在openssl命令中添加参数以支持与DHE-RSA密码套件的服务器建立连接。
openssl s_client -connect server_address:port -cipher DHE-RSA-AES256-SHA
文章如下:
使用openssl与支持DHE-RSA密码套件的服务器建立连接的方法如下:
openssl s_client -connect server_address:port -cipher DHE-RSA-AES256-SHA
以上是一种简便的方法,可以在一条命令中完成与服务器的连接。然而,在上述内容中,并没有提到如何使用openssl与支持DHE-RSA密码套件的服务器建立连接的方法。
要解决这个问题,可以使用以下命令:
openssl s_client -connect server_address:port -cipher DHE-RSA-AES256-SHA
通过使用以上命令,可以成功与支持DHE-RSA密码套件的服务器建立连接。
希望以上内容对您有帮助!
注:以上内容仅供参考。具体操作请根据您的实际情况进行调整。