此文已由做者赵斌受权网易云社区发布。
html
欢迎访问网易云社区,了解更多网易技术产品运营经验。前端
最近为了测试内容分发网络(Content Delivery Network,简称 CDN)添加的新功能,支持HYTTPS安全加速功能,须要对证书的有效性进行验证,因而乎须要本身生成合法的、非法的、过时的证书。接下来介绍下如何经过OpenSSL生成证书。web
建立证书密钥文件算法
openssl genrsa -des3 -out ca.key 8192
运行时会提示输入密码,此密码用于加密key文件(参数des3即是指加密算法,固然也能够选用其余你认为安全的算法.),之后每当需读取此文件(经过openssl提供的命令或API)都需输入口令.若是以为不方便,也能够去除这个口令,但必定要采起其余的保护措施! 去除key文件口令的命令:安全
openssl genrsa -out ca.key 8192
2.建立证书请求并自签署证书 :网络
openssl req -new -x509 -sha256 -days 365 -key ca.key -out ca.crt -subj "/C=CN/ST=Beijing/L=Beijing/O=Netease/OU=Netease Root CA"各选项(及参数)的意义以下: req 使用openssl的req子命令 -new 生成新的证书请求 -x509 生成自签名证书 -days 365 自签名证书的有效期365天(1年)【仅当使用了 -x509 选项后有效】 -key ca.key 私钥文件名指定为ca.key【若为运行前就已有的私钥文件且原名不是ca.key,则更名为ca.key;不然新生成的私钥文件命名为ca.key】 -out ca.crt 指定输出所生成自签名证书的信息到文件,且文件名为ca.crt【建议不要省略】 -subj arg 其中,arg是选项 -subj 的参数,其格式相似于:/type0=value0/type1=value1/type2=... 形式。每个 /type=value 形式的单元,都对应了一个完整的DN字段。
DN字段名 | 缩写 说明 | 填写要求 |
---|---|---|
Country Name | C 证书持有者所在国家 | 要求填写国家代码,用2个字母表示 |
State or Province Name | ST 证书持有者所在州或省份 | 填写全称,可省略不填 |
Locality Name | L 证书持有者所在城市 | 可省略不填 |
Organization Name | O 证书持有者所属组织或公司 | 可省略不填 |
Organizational Unit Name | OU 证书持有者所属部门 | 可省略不填 |
Common Name | CN 证书持有者的通用名 | 必填 |
Email Address | 证书持有者的通讯邮箱 | 可省略不填 |
1.首先将系统的时间修改超前2年;框架
2.执行(二)中第2步时,设置-days为证书的有效期,例如设置为365;oop
3.再次将系统时间恢复便可,该证书则为已过时一年。测试
按照(二)或(三)中的方法生成的证书,点击ca.crt,在常规中便可看到该证书都有效期是从XXX到XXX。按照(二)中的方法即生成的为合法证书;按照(三)中的方法即生成的为过时证书;非法证书的生成即随便输入,不是按照证书的格式,不是以下格式:-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----便可。云计算
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 从加班论客户端开发中的建模
【推荐】 Message Loop 原理及应用
【推荐】 实现本身的前端模板轻量级框架