如何生成本身的根證書

背景

因爲公司研發人員增長,測試服務器不夠用了,因此加了新服務器,新服務器的https證書就成問題了,總不能每次新增服務器都要從新生成https證書吧,並且還得讓全公司研發都信任一遍,那是至關費事了。node

解決方案

公司本身當證書頒發機構,全部人將公司設爲受信任的證書頒發機構,這樣公司頒發的全部證書就會被自動信任nginx

生成rootCA

什麼是CA?數字證書認證機構(英語:Certificate Authority,縮寫爲CA),下面是生成ca的方法git

生成私鑰

openssl genrsa -des3 -out myCA.key 2048

命令執行過程當中會要求輸入密碼,因爲是測試環境,對安全性沒那麼高,能夠隨便輸一個。安全

生成rootCA

openssl req -x509 -new -nodes -key myCA.key -sha256 -days 36500 -out myCA.pem

執行過程當中會要求輸入各類信息,按要求輸入便可服務器

完成

如今咱們有myCA.pem,這就root CA。
而後在操做系統裏信任myCA.pem。測試

使用rootCA生成證書

生成私鑰操作系統

openssl genrsa -out dev.com.key 2048

生成簽名請求code

openssl req -new -key dev.com.key -out dev.com.csr

建立配置文件dev.com.extip

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = dev.com

最後生成證書ssl

openssl x509 -req -in dev.com.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \
-out dev.com.crt -days 1825 -sha256 -extfile dev.com.ext

如今有3個文件dev.com.key(私鑰),dev.com.csr(證書籤名請求),dev.com.crt(證書)

nginx配置

ssl_certificate      dev.com.crt;
ssl_certificate_key  dev.com.key;
此文參考了這篇文章
相關文章
相關標籤/搜索