此文已由做者趙斌受權網易雲社區發佈。
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 原理及應用
【推薦】 實現本身的前端模板輕量級框架