xca打開的界面

依次File, New DataBase,選擇xdb文件保存路徑,再輸入密碼

切換到Certificates頁面,點擊New Certificate

出現如下界面

因為要創建根證書,這里選擇序號為1的自認證證書,簽名算法選擇SHA 256,證書模版選擇默認CA,再點擊Apply all(這個不能漏):

再切到Subject頁面,填好各個字段,都可以隨便填

再點擊Generate a new key生產私鑰


最后點擊OK,CA證書做好了,有效期默認10年

將根證書導出成只包含公鑰的證書格式(crt格式),以供客戶端安裝到可信任根證書;另外導出pem all(*.pem)格式,供linux服務器端使用:

制作服務器證書、客戶端證書和制作CA證書差不多,只有幾個地方不一樣:
選擇已經制作好的根CA,然后點擊New Certificate
-

簽名時,選擇使用根證書,這里是hangzhou進行簽名頒發,然后證書模版選擇服務器(制作客戶端證書就選擇HTTPS_client),其他都 和制作根證書一樣,然后點擊Apply all(這個一定不能忘),然后再切到Subject、Extension頁面填寫相應的東西就OK了

制作完成:

然后再將服務器證書導出來,選擇crt(pem(*.crt)),導出后將后綴改為*.pem,此時再導出對應key,就可以在linux服務器上使用。

同理制作客戶端證書,並將之導出,也是p12格式的證書,在客戶端使用;另外導出pem格式(同服務器導出方式),在linux服務端使用,無論制作客戶端證書還是服務器證書commen name都要寫對(寫被訪問服務器的),否則驗證不通過(服務器證書commen name錯誤瀏覽器報服務器不可信即ERR_CERT_COMMON_NAME_INVALID錯誤;客戶端證書commen name錯誤當開啟客戶端證書驗證時服務器會報客戶端不可信,從而拒絕客戶端訪問)。
- 值得注意的是在簽發服務端證書時需要填寫Subject Alternative選項,否則chrome瀏覽器依然會報錯“ERR_CERT_AUTHORITY_INVALID”,如圖所示:


在下拉列表中選擇ip或DNS等,並填寫自己服務器的ip或域名,注意要填寫正確,否則瀏覽器會報 ERR_CERT_COMMON_NAME_INVALID 錯誤
