OpenSSL 操作筆記 - 產生 RSA 金鑰

Certificate 的目的就是用來發布 public key, 在 public key 上加入各種屬性讓人知道這張 certificate 的作用是什麼, 再加上一段 CA 的簽名,增加這隻 public key 的可靠性
在 DOCSIS 1.0 的時候, 跑 bpi 時, CM 直接丟 public key 與頭端溝通, DOCSIS 1.1 之後 bpi 變成 bpi+ , 這時候 CM 丟的就是 certificate 了, CMTS 可以用它已知的 CA 去檢查 CM certificate 是否為正確的
作 certificate 第一步就是製作 key, 目前我用到的都是用 RSA

openssl 產生 RSA key 有多種方式,有專門產生 key 的, 和順便產生 key 的

  1. genrsa
  2. 最簡單的方法,不加密,設定輸出檔名和金鑰長度就可以了
    openssl genrsa -out key.pem 2048
    這個指令只能輸出 PEM, PKCS#1 格式, 要換 DER 格式要另外轉, 若 private key 想要加密可以再補上-des-des這3...
    openssl genrsa -out key.pem -des3 2048
  3. genpkey
  4. 這個指令可以產生的金鑰種類比較多,但我只用到 RSA, 輸出格式可以設定為 PEM 或 DER
    openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out key.pem
    openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -outform der -out key.der
    同樣可以加入-des-des3...加密

    當 genpkey 輸出的格式為 PEM 時是採用 PKCS#8, 輸出格式為 DER 時是存成 PKCS#1,加密參數會被無視

  5. req
  6. req 是用來產生 CSR 的, 需要輸入 private key, 當沒有 key 時會順便產生一把新的 key, req 指令要搭配 config file, 這邊都採用預設值
    openssl req -new -out csr.pem
    -new表示要產生新的 csr, 搭配-key一起使用,若沒給 key, 會根據 config file 的設定產生一把新的金鑰 config file的設定多數都能用 command line 參數取代 與產生 key 有關的參數有-newkey -keyout -nodes
    openssl req -newkey rsa:2048 -out csr.pem -nodes -keyout key.pem
    這指令會產生 rsa 2048 bits private key, 不加密, 存成 key.pem, 並用這把 key 產生 csr



沒有留言:

張貼留言