版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/G_Barble/article/details/52889352
之前在apache配置ssl的时候用openssl生成的证书用的是rsa,这直接导致了不能使用包含ecdsa的加密套件,之前一直想不明白为什么不能使用包含ecdsa的加密套件,明明浏览器和openssl支持的tls 1.2 加密套件中都包含有ecdsa的。 后来从头开始仔细梳理了一遍思路觉得还是证书的问题。用rsa签发的证书,能使用包含rsa的加密套件;同理,用ecc签发的证书能使用包含ecdsa的加密套件。
明确问题所在以后,就可以开始解决问题了。
首先,是用openssl 创建ecc的自签证书(参考:https://msol.io/blog/tech/create-a-self-signed-ecc-certificate/)
1、openssl ecparam -genkey -name prime256v1 -out key.pem
2、openssl req -new -sha256 -key key.kem -out csr.csr
3、openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out certificate.pem
查看生成的证书:
openssl x509 -text -noout -in /private/etc/apache2/ssl_ecdsa/certificate.pem
详情如下图:
建好证书以后,从apache默认文件里面拷贝一份 https-ssl.conf 文件,再把
https-ssl.conf 文件中 SSLCertificateFile 和 SSLCertificateKeyFile 的路径给改了
重启apache,ok