如何利用OpenSSL生成證書

此文已由做者趙斌受權網易雲社區發佈。
html

歡迎訪問網易雲社區,瞭解更多網易技術產品運營經驗。前端

1、前言


最近爲了測試內容分發網絡(Content Delivery Network,簡稱 CDN)添加的新功能,支持HYTTPS安全加速功能,須要對證書的有效性進行驗證,因而乎須要本身生成合法的、非法的、過時的證書。接下來介紹下如何經過OpenSSL生成證書。web


2、使用OpenSSL生成證書


  1. 建立證書密鑰文件算法


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 證書持有者的通訊郵箱 可省略不填


3、生成過時證書的簡便方法


1.首先將系統的時間修改超前2年;框架


2.執行(二)中第2步時,設置-days爲證書的有效期,例如設置爲365;oop


3.再次將系統時間恢復便可,該證書則爲已過時一年。測試


4、查看證書


按照(二)或(三)中的方法生成的證書,點擊ca.crt,在常規中便可看到該證書都有效期是從XXX到XXX。按照(二)中的方法即生成的爲合法證書;按照(三)中的方法即生成的爲過時證書;非法證書的生成即隨便輸入,不是按照證書的格式,不是以下格式:-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----便可。雲計算



       

免費體驗雲安全(易盾)內容安全、驗證碼等服務

11.1—11.15雲計算基礎服務全場5折起

更多網易技術、產品、運營經驗分享請點擊


相關文章:
【推薦】 從加班論客戶端開發中的建模
【推薦】 Message Loop 原理及應用
【推薦】 實現本身的前端模板輕量級框架

相關文章
相關標籤/搜索