ca根證書
mkdir private
# 生成私鑰 key 檔案:
openssl genrsa -out private/ca.key 2048
輸出generating rsa private key, 2048 bit long modulus
.......+++
.........................+++
e is 65537 (0x10001)
private 目錄下有 ca.key 檔案生成。
# 生成證書請求 csr 檔案
openssl req -new -key private/ca.key -out private/ca.csr
這裡需要填寫一些資訊
# 生成憑證 crt 檔案
openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt
建立配置檔案:
[ ca ]
default_ca = foo # the default ca section
[ foo ]
dir = ./ # top dir
database = ./index.txt # index file.
new_certs_dir = ./newcerts # new certs dir
certificate = ./private/ca.crt # the ca cert
serial = ./serial # serial no file
private_key = ./private/ca.key # ca private key
randfile = ./private/.rand # random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next crl
default_md = sha1 # message digest method to use
unique_subject = no # set to 'no' to allow creation of
# several ctificates with same subject.
policy = policy_any # default policy
[ policy_any ]
countryname = match
stateorprovincename = match
organizationname = match
organizationalunitname = match
localityname = optional
commonname = supplied
emailaddress = optional
伺服器證書的生成
# 建立乙個 key,伺服器不需要密碼
openssl genrsa -out server/server.key 2048
# 為我們的 key 建立乙個證書簽名請求 csr 檔案
openssl req -new -key server/server.key -out server/server.csr
# 會有一些問題,保持和之前一樣就好,注意裡面的hostname, 填寫伺服器的ip位址,確保能通過這個位址訪問伺服器
# 使用我們私有的 ca key 為剛才的 key 簽名
openssl ca -in server/server.csr -cert private/ca.crt -keyfile private/ca.key -out server/server.crt -config "./conf/openssl.conf"
# 會有一些提示資訊,直接確認
客戶端證書的生成
mkdir users
# 為使用者建立乙個 key,需要密碼
openssl genrsa -des3 -out ./users/client.key 2048
# 根據提示輸入密碼
# 為 key 建立乙個證書簽名請求 csr 檔案,會有一些資訊,和之前填寫一致
openssl req -new -key ./users/client.key -out ./users/client.csr
# 使用我們私有的 ca key 為剛才的 key 簽名
openssl ca -in ./users/client.csr -cert ./private/ca.crt -keyfile ./private/ca.key -out ./users/client.crt -config "./conf/openssl.conf"
為了可以通過瀏覽器驗證,轉化為p12格式:
openssl pkcs12 -export -clcerts -in ./users/client.crt -inkey ./users/client.key -out ./users/client.p12
# 輸入密碼後,users 目錄下有 client.p12 檔案生成。
格式轉換:
為了在程式中使用,我們將客戶端crt 和 key以及ca.crt轉化為pem格式的檔案
openssl x509 -in ca.crt -out cacrt.pem -outform pem
openssl x509 -in client.crt -out clientcrt.pem -outform pem
openssl rsa -in client.key -out clientkey.pem
我們需要的證書檔案有:
根證書ca.crt
cacrt.pem
根證書簽發的服務端證書
server.crt
服務端私鑰
server.key
根證書簽發的客戶端證書
client.crt
clientcrt.pem
客戶端私鑰
client.key
clientkey.pem
openssl生成https證書
openssl生成https證書 1.首先要生成伺服器端的私鑰 key檔案 openssl genrsa des3 out server.key 1024 執行時會提示輸入密碼,此密碼用於加密key檔案 去除key檔案口令的命令 openssl rsa in server.key out serve...
https 相關知識 (openssl)
秘鑰演算法和協議 對稱加密 加密和解密使用同乙個秘鑰 des data encryption standard 不安全,容易被破解 56位秘鑰 3des triple des aes advanced encryption standard 安全性特別高 秘鑰128bits 192bits 256b...
openssl生成https證書
本文主要介紹在linux環境下通過openssl生成自己的ssl證書,並搭配nginx伺服器啟用https。我對證書的了解也不是很多,從網上蒐羅一些資料,並在centos上成功搭建https伺服器,通過本文整理如下 etc pki ca index.txt 跟蹤已頒發的證書,初始為空。注意是0位元組...