最近,博客的SSL证书要到期了,所以需要给博客网站更换SSL证书。但是,遇到了一点点小麻烦,在此记录一下这个问题,因为在网上找了很久才解决。
免费证书的申请网站 Freessl ,申请的流程之前的文章有写过,文章链接
我的做法
我的做法是按照流程把证书重新申请下来之后,直接去服务器里替换证书文件里的内容,然后把两个网站的证书都更换了之后,我重新进入我的博客发现证书并没有被更换。于是,我想重新启动Apache看一下,结果一直重启失败,关机重启之后也是失败,也没有任何提示。然后,我仔细检查了证书的内容,发现还真的有复制错误的,然后修改保存,重新启动发现还是错误。
错误原因
仔细检查了常见的错误都没有犯之后,我打开了Apache的错误日志,之前都没什么问题,只在换证书之后出现了问题,我想肯定是证书的问题了。然后发现一直提示这一条错误
[Sun Oct 21 03:35:26 2018] [error] Init: Multiple RSA server certificates not allowed
[Sun Oct 21 04:00:38 2018] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)然后我 重新看了整个申请流程,发现我之前申请的证书证书类型是ECC,而现在默认申请的时候证书类型是RSA,由于我是多域名用一个证书,根据提示多个RSA证书不被允许,所以我重新申请了一个ECC的证书,然后换上去就可以了。
RSA和ECC的区别
- RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
- ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
在 1976 年,由于对称加密算法已经不能满足需要,Diffie 和 Hellman 发表了一篇叫《密码学新动向》的文章,介绍了公匙加密的概念,由 Rivet、Shamir、Adelman 提出了 RSA 算法。RSA 就是他们三人姓氏开头字母拼在一起组成的。
随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,RSA 的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用 RSA 的应用带来了很重的负担,因此需要一种新的算法来代替 RSA。
1985 年 N.Koblitz 和 Miller 提出将椭圆曲线用于密码算法,全称:Elliptic curve cryptography,缩写为 ECC,根据是有限域上的椭圆曲线上的点群中的离散对数问题 ECDLP。ECDLP 是比因子分解问题更难的问题,它是指数级的难度。
现在 SSL 证书普遍使用的是 RSA 算法,由于上述的 RSA 算法存在的缺点,使用 ECC 作为其公钥算法的数字证书近几年的发展也不容小觑:2008 年左右 CA 开始储备 ECC 根证书,2012 年左右 CA 开始对外公开销售 ECC 证书,2014 年 ECC 证书在国外被普遍开始使用,2015 年国内开始接受 ECC 证书。
ECC 和 RSA 相比,在许多方面都有对绝对的优势,主要体现在以下方面:
- 抗攻击性强
- CPU 占用少
- 内容使用少
- 网络消耗低
- 加密速度快
以上是从网上看到的内容,之前一直没有留意到,只能说自己经验不足,以后要多加留意。
案例丰富,数据详实,论证扎实可信。