- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
目前我正在开发基于服务器的应用程序,该应用程序使用 libssl 来实现 ssl。当我使用 RSA 证书时,一切正常,但是当我将椭圆曲线 key 与我的证书一起使用时,我无法连接到服务器。当我尝试 curl 时,出现以下错误
NSS error -12286 (SSL_ERROR_NO_CYPHER_OVERLAP)
Cannot communicate securely with peer: no common encryption algorithm(s).
Closing connection 0
通过使用“openssl s_client”命令,我了解到服务器仅提供“ECDH-ECDSA-AES256-GCM-SHA384”,但 curl 或 chrome 无法识别此密码套件。
生成证书的步骤是:
openssl ecparam -name prime256v1 -genkey -noout -out ecCert.key
openssl req -new -key ecCert.key -out ecCert.csr -subj /CN=servername.com
openssl x509 -req -in ecCert.csr -CA ./rootCA.pem -CAkey ./rootCA.key -CAcreateserial -sha256 -out ecCert.crt -days 500
cat ecCert.crt ecCert.key > ecCert.pem
有没有办法配置服务器的加密方式?
附言我正在使用 openssl 版本“OpenSSL 1.0.2g 2016 年 3 月 1 日”
我还尝试使用 SSL_CTX_set_cipher_list(ctx, ciphers) 设置密码列表
最佳答案
I have also tried to set cipher list by using SSL_CTX_set_cipher_list(ctx, ciphers)
这才是正确的做法。 OpenSSL 语法中的相关密码是 ECDHE-ECDSA-AES128-GCM-SHA256。但请注意,为了在服务器端使用任何类型的 ECC 密码,您还需要设置曲线以与 SSL_CTX_set_tmp_ecdh
一起使用。
有关更广泛的信息,请参阅 jww 在 Server with ECDHE key and cert not working 上的出色回答.
关于ssl - 如何配置 libssl 以使用 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 密码套件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36478977/
我是一名优秀的程序员,十分优秀!