阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 5170阅读
  • 1回复

[ECS]生成、签署 ECC 证书,Apache Httpd 部署双证书教程

级别: 论坛版主
发帖
9349
云币
14165
— 本帖被 不靠谱贝贝 设置为精华(2017-01-13) —
前言 Uw)=WImz[  
s8vKKvs`9  
G;s"h%Xw98  
2017年绝对是移动互联网的加密元年,越来越多的移动互联网网站、应用会部署 HTTPS 加密,不过移动平台因为普遍基于 ARM 架构所以对处理 HTTPS 的性能和速度都不如电脑平台。 _ie.|4k  
因此我们就需要部署更短、更快和更安全的 ECC 证书来实现移动平台的 HTTPS 的加密解密高效化。 &94W-zh  
-Sz_mr  
介绍 oa`#RC8N  
((<`zx  
=45W\  
椭圆曲线密码学(Elliptic curve cryptography,缩写为ECC),一种建立公开密钥加密的算法,基于椭圆曲线数学,其更适合于移动互联网,有更好的安全性和更好的性能。ECC加密算法 1985年 提出,到 2005 年才在各种操作系统中获得广泛支持,2015 年开始被普遍性的部署。 rF] +,4  
{eQWO.C{  
Ur!~<4GO  
缺陷: "^Rv#  
就像上面所说的一样,2005 年才被各大操作系统广泛支持,所以 2005 之前包括之后几年发布的操作系统都不会对其有很好的支持。 f~ZEdq8  
因此会需要使用本文介绍的双证书来解决。 iZxt/}1X0  
8(lR!!=q  
签发 M0w/wt|  
>o/95xk2  
.Djta|puu  
目前主流的 CA 都已经支持了 ECC 证书的签发,但是几个老牌大厂支持 ECC 的证书动辄就是几千元,那还玩个蛋。 cWa)#:JOV  
目前廉价或免费的 ECC 证书解决方案:
  1. Comodo 的低端证书(四级证书链接,略长)
  2. Let’s Encrypt 的免费证书(90天签发一次,签发略复杂)
+Gh7^v|"  
"9XfQ"P  
CSR 申请方法 }x:f%Z5h  
a#[-*ou`  
5iM[sg[y9  
一、生成 key `1+F,&e  
9Ah[rK*}  
引用
openssl ecparam -genkey -name secp256r1 -out mf8.biz-ecc.key
iw\%h9  
-name 参数 prime256v1 或者secp384r1。 256bit 其实安全性和速度都足够了. x({C(Q'O  
<9eu1^g  
二、生成 CSR u0 y 1  
, ZFE(  
  1. openssl req -new -sha256 -key vobe-io-ecc.key -out vobe-io-ecc.csr
:iPy m}CE  
)Gk`[*q ;  
在这里我们只需要 sha256 即可,这里之后会提问你很多问题,可以搜索一下 csr 的填写教程。 $yu?.b 9H#  
X2yTlLdY  
三、傻瓜 27A!\pn  
l]6% lud8_  
}dYBces  
一键命令: Vf $Dnu@}z  
+TJ EG?o  
  1. openssl ecparam -out 你的域名.ecc.pkey -name secp256r1 -genkey && openssl req -new -key 你的域名.ecc.pkey -sha256 -nodes -out 你的域名.ecc.csr -subj “/C=CN/ST=省份/L=城市/O=组织/OU=组织单位/部门/分支/CN=你的域名”
,[!LCXp  
EWj gI_-  
#hw>tA6  
将中文部分修改补齐即可,默认生成 256 bit 的 key 和 csr 。 Z?G&.# :  
GTl xq%?b  
yj_4gxJ\  
在线生成: PXk?aJ  
https://www.chinassl.net/ssltools/generator-csr.html 9`B$V##-L  
7cTk@Gq  
Let’s Encrypt 方法 hdma=KqZ(  
z(13~38+  
这里介绍用 acme.sh 签发,米饭也是用这货签的。 #,NvO!j<4  
指定 --keylength ec-256 就可以将证书类型改为 ECC:
  1. acme.sh --issue -w /data/wwwroot/www.mf8.biz -d mf8.biz -d www.mf8.biz --keylength ec-256
6'-As= iw  
5:.{oSy7n  
Apache Httpd 双证书 rS8 w\`_  
B.dT)@Lx0  
|> enp>  
Nginx 教程:https://www.mf8.biz/ecc-nginx-double-cert/ I]`-|Q E  
Apache Httpd 版本: 2.4(2.2 我测试不成功),然后 OpenSSL 库的版本不同,方法也不同。 t18$x "\4k  
/)3Lnn{W  
OpenSSL 1.0.2 or Later 4JyM7ePND}  
S<wj*"|.s  
23]Y<->Eu<  
适用于: Ubuntu 16.04 、Debian 9 or 8 + BackPorts 等系统 OpenSSL 版本较高的系统 >QkP7Kb  
这里就会非常简单,只要复制两份即可,然后必须将证书和证书链合并为一个文件(证书上,证书链下)。 gABr@>Vv  
  1. #ECC 在前
  2. SSLCertificateFile "/usr/local/httpd/conf/ssl/www.mf8.biz.ecc.crt"
  3. SSLCertificateKeyFile "/usr/local/httpd/conf/ssl/www.mf8.biz.ecc.key"
  4. #RSA 在后
  5. SSLCertificateFile "/usr/local/httpd/conf/ssl/www.mf8.biz.crt"
  6. SSLCertificateKeyFile "/usr/local/httpd/conf/ssl/www.mf8.biz.key"
L=; -x9  
]d}0l6  
OpenSSL < 1.0.2 F7*wQ{~  
=/0=$\Ws  
/RnTQ4   
适用于: Centos 7 Ubuntu 14.04 等系统 OpenSSL 版本小于 1.0.2 的,需要将 ECC 和 RSA的证书链合并,ECC 在前,RSA 在后。 !ZXUPH  
  1. #ECC 在前
  2. SSLCertificateFile "/usr/local/httpd/conf/ssl/www.mf8.biz.ecc.crt"
  3. SSLCertificateKeyFile "/usr/local/httpd/conf/ssl/www.mf8.biz.ecc.key"
  4. #RSA 在后
  5. SSLCertificateFile "/usr/local/httpd/conf/ssl/www.mf8.biz.crt"
  6. SSLCertificateKeyFile "/usr/local/httpd/conf/ssl/www.mf8.biz.key"
  7. #合并的证书链
  8. SSLcertificateChainFile "/usr/local/httpd/conf/ssl/ca.crt"
yV_wDeAz  
TFQ!7'xk)  
Cipher Suites 2{|$T2?e  
dtt~ Bd  
[font=-apple-system, BlinkMacSystemFont, &amp]然后不管 OpenSSL 版本,Cipher Suites 都要搞好,不然双证书是不会生效的。  ;q>9W,jy  
  1. SSLCipherSuite: EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
:mcYZPX#  
=n(3o$r(  
效果图 5*g]qJF  
q8P.,%   
[{u(C!7L`  
来自:https://www.mf8.biz/ecc-httpd-double-cert/ \*t~==WB  
,M5}4E7L%s  
[ 此帖被ivmmff在2017-03-18 20:35重新编辑 ]
本帖最近评分记录: 1 条评分 云币 +10
鬼才神兵 云币 +10 您的无私奉献精神值得我们学习!向您致敬! 2017-01-04
级别: 论坛版主
发帖
1784
云币
3327

只看该作者 沙发  发表于: 2017-01-04
您的无私奉献精神值得我们学习!向您致敬!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)