ECC+RSA双证书解决方案

简介: ECC+RSA双算法SSL证书的配置方法

什么是ECC

ECC是Elliptic Curves Cryptography的缩写,意为椭圆曲线密码编码学。和RSA算法一样,ECC算法也属于公开密钥算法。最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。
ECC算法的数学理论非常深奥和复杂,在工程应用中比较难于实现,但它的单位安全强度相对较高,它的破译或求解难度基本上是指数级的,黑客很难用通常使用的暴力破解的方法来破解。RSA算法的特点之一是数学原理相对简单,在工程应用中比较易于实现,但它的单位安全强度相对较低。因此,ECC算法的可以用较少的计算能力提供比RSA加密算法更高的安全强度,有效地解决了“提高安全强度必须增加密钥长度”的工程实现问题。

与RSA算法相比,ECC算法拥有突出优势:

1、更适合于移动互联网: ECC加密算法的密钥长度很短(256位),意味着占用更少的存储空间,更低的CPU开销和占用更少的带宽。随着越来越多的用户使用移动设备来完成各种网上活动,ECC加密算法为移动互联网安全提供更好的客户体验。

2、更好的安全性:ECC加密算法提供更强的保护,比目前的其他加密算法能更好的防止攻击,使你的网站和基础设施比用传统的加密方法更安全,为移动互联网安全提供更好的保障。

3、更好的性能: ECC加密算法需要较短的密钥长度来提供更好的安全,例如,256位的ECC密钥加密强度等同于3072位RSA密钥的水平(目前普通使用的RSA密钥长度是2048位)。其结果是你以更低的计算能力代价得到了更高的安全性。经国外有关权威机构测试,在Apache和IIS服务器采用ECC算法,Web服务器响应时间比RSA快十几倍。

4、更大的IT投资回报:ECC可帮助保护您的基础设施的投资,提供更高的安全性,并快速处理爆炸增长的移动设备的安全连接。 ECC的密钥长度增加速度比其他的加密方法都慢(一般按128位增长,而 RSA则是倍数增长,如:1024 -2048--4096),将延长您现有硬件的使用寿命,让您的投资带来更大的回报。

ECC加密算法的通用性不断增强

ECC加密算法自1985年提出,因其工程应用中难度较高,到2005年才在各种操作系统中获得广泛支持,在全球安全市场需求的刺激下,ECC算法将逐步取代RSA算法,成为主流加密算法。目前,全球各大CA都已经陆续开始为用户签发采用ECC加密算法的各种证书.ECC加密算法以后支持所有操作系统、所有浏览器和各种移动终端,主要有:

Mozilla NSS 3.11以上版本支持

OpenSSL 1.0以上版本支持

微软CryptoAPI Vista/Win7/Win8都支持

BouncyCastle 1.32以上版本支持

JSSE 6 以上版本支持

BSAFE 4.0 以上版本支持

各种版本的IE浏览器、火狐浏览器、谷歌浏览器和苹果浏览器都支持

安卓系统(2.3以上版本)、苹果IOS(5.0以上版本)、Window Phone(各种版本)都支持

Apache配置方法

首先将 ecc 证书和 rsa 证书的证书链合并, ecc 证书链在前, rsa在后, cat chain-ecc.crt chain-rsa.crt > chain-ecc-rsa.crt 打开apache安装目录下conf/extra目录中的httpd-ssl.conf(或conf目录中的ssl.conf)文件
在配置文件中的
<VirtualHost *:443>……</VirtualHost> 之间添加或编辑如下配置项

SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
#ECC 将 ecc 证书(不含证书链)和 ecc 证书的密钥文件放在前
SSLCertificateFile /etc/apache2/SSL2015/ecdsa.cert.crt 
SSLCertificateKeyFile /etc/SSL2015/certs/ecdsa.key 
#RSA  将 rsa 证书(不含证书链)和 rsa 证书的密钥文件放在后
SSLCertificateFile /etc/apache2/SSL2015/rsa.cert.crt 
SSLCertificateKeyFile /etc/apache2/SSL2015/rsa.cert.key 

#指定 ecc/rsa 合并后的证书链位置 
SSLcertificateChainFile /etc/apache2/SSL2015/chain-ecc-rsa.crt

如果服务器的 OpenSSL 版本已经为 1.0.2 以及更新的版本,则用以下方法,ecc 和 rsa 证书要包含证书链:

#ECC 指定 ecc 证书文件位置(证书以及证书链合并为一个文件为 ecdsa.cert.pem ) 
SSLCertificateFile /etc/apache2/SSL2015/ecdsa.cert.pem 
SSLCertificateKeyFile /etc/SSL2015/certs/ecdsa.key 

#RSA 指定 rsa 证书文件位置(证书以及证书链合并为一个文件为 rsa.cert.pem ) 
SSLCertificateFile /etc/apache2/SSL2015/rsa.cert.pem 
SSLCertificateKeyFile /etc/apache2/SSL2015/rsa.cert.key

以上是指定证书的方式,各位根据 OpenSSL 的版本选择对应的方式,当然这还没完,下一步要直接指定证书加密方式,==确保 ecc 的加密方式要在 rsa 模式的前面,否则 ecc 证书没法生效了。==

Nginx配置方法

nginx 最新的 mainline 版本已经支持了双证书,推荐使用nginx 1.11.1版本,openssl 版本推荐使用1.0.2h版本。

修改nginx的配置文件 nginx.conf 配置双证书:

ssl_certificate ssl/ecc/server.pem;  
ssl_certificate_key ssl/ecc/server.key;  
ssl_certificate ssl/rsa/server.pem;  
ssl_certificate_key ssl/rsa/server.key;

ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;

----
目录
相关文章
|
算法 安全 数据安全/隐私保护
DSA与RSA的区别、ECC(椭圆曲线数字签名算法(ECDSA))
DSA与RSA的区别、ECC(椭圆曲线数字签名算法(ECDSA))
1612 0
交叉证书
## 证书4要素 pubkey(公钥) ,有一个其一一对应的私钥,由证书拥有者保存。 subject(名字),可以理解为证书的名字,你可以理解为 网站的域名。 issuer(颁发者的名字),即上级证书的subject。 signature(签名) ,上级证书使用私钥对当前证书进行签名的值。 ## 证书签名 假设 有 3 级 证书 ![image.png](
5398 0
|
机器学习/深度学习 人工智能 算法框架/工具
《YOLOv10魔术师专栏》专栏介绍 & 专栏目录
【7月更文挑战第4天】 【原创自研模块】【多组合点优化】【注意力机制】 【主干篇】【neck优化】【卷积魔改】 【block&多尺度融合结合】【损失&IOU优化】【上下采样优化 】 【小目标性能提升】【前沿论文分享】【训练实战篇】
434 1
|
存储 算法 安全
【密码学】非对称加密算法 - ECDH
由于 ECC 密钥具有很短的长度,所以运算速度比较快。到目前为止,对于 ECC 进行逆操作还是很难的,数学上证明不可破解,ECC 算法的优势就是性能和安全性高。实际应用可以结合其他的公开密钥算法形成更快、更安全的公开密钥算法,比如结合 DH 密钥形成 ECDH 密钥协商算法,结合数字签名 DSA 算法组成 ECDSA 数字签名算法。ECDH算法常常用来进行密钥的协商,协商好密钥后,用来解决上面的密钥分配问题,将对称加密的密钥安全的传到对端设备。算法加密/解密数字签名密钥交换RSA✅✅✅❌。
5257 0
|
9月前
|
域名解析 网络协议 网络安全
SSL证书验证全攻略:DNS/HTTP/手动解析怎么选?
SSL证书在网络安全中至关重要,1Panel提供三种验证方式:DNS验证、HTTP验证和手动解析。DNS验证便捷,适合CDN网站;HTTP验证快速,需服务器在线;手动解析灵活,但操作复杂。根据需求选择合适确认方式,定期检查证书状态。
970 2
|
运维 监控 DataWorks
DataWorks 稳定性保障全解析:深入监控与资源调配
DataWorks 的稳定性保障体系涵盖精细监控与资源调配,确保企业数据业务高效、稳定运行。监控模块包括资源、任务和质量监控,及时预警并处理异常;资源调配策略则针对集成、调度、数据服务及计算资源进行科学配置,保障数据同步、任务优先级和高并发需求。通过全方位的监控和合理的资源配置,DataWorks 为企业筑牢数据根基,助力数字化转型。
576 10
|
域名解析 网络协议 安全
免费通配符SSL证书申请(不限量无限续签)
要申请并部署免费通配符SSL证书,首先选择如JoySSL等支持无限续签的服务商,完成注册与登录后,选择免费通配符证书并提交域名信息。通过域名所有权验证后,下载证书文件并按服务器类型部署。最后,测试HTTPS连接确保安全,并设置续签提醒,保证证书持续有效。此过程不仅加强了网站的安全性,还简化了多子域名的管理。
vscode设置自动保存步骤
vscode设置自动保存就不用每次要运行时候去先保存一下才能加载新页面了
20061 0
vscode设置自动保存步骤
|
机器学习/深度学习 算法 数据挖掘
算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice
**摘要:** 了解9种距离和相似度算法:欧氏距离、余弦相似度、汉明距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、雅卡尔指数、半正矢距离和Sørensen-Dice系数。这些算法在机器学习、文本分析、图像处理和生物学等领域各有应用。例如,欧氏距离用于KNN和K-Means,余弦相似度用于文本相似性,汉明距离在错误检测中,曼哈顿距离在数据挖掘,切比雪夫距离在棋盘游戏,闵可夫斯基距离通过调整参数适应不同场景,雅卡尔指数和Sørensen-Dice系数用于集合相似度。每种算法有其优缺点,如欧氏距离对异常值敏感,余弦相似度忽略数值大小,汉明距离仅适用于等长数据。
651 2
算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice