第一部分:自建ca
注:為了更好管理自建ca,在下文中,為沒有特殊說明的情況,ca根目錄都是指的自建ca的根目錄。
1. 建立ca根目錄,並初始化一些檔案:第二部分:生成ssl所需私鑰及ca簽發請求mkdir $home/myca
cd $home/myca
mkdir certs private conf
echo "01" > serial
echo "" > index.txt
cat > conf/gen_ca.cnf << eof
# cnf start here
[req]
default_keyfile = [my home]/myca/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = myca_distinguished_name
x509_extensions = myca_extentions
[myca_distinguished_name]
organizationname = myca_org
organizationalunitname = myca_unit
commonname = myca_common
emailaddress = [email protected]
[myca_extentions]
basicconstrains = ca:true
# cnf end here
eof
2. 生成ca所需要的私鑰及自簽證書:
// 生成私鑰,並自簽
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform pem -days 365 -config conf/gen_ca.cnf
//根據提示,輸入相應的密碼及其他內容
//檢視上面生成的ca證書
openssl x509 -in cacert.pem -text -noout
3. 生成ca簽發證書的配置檔案:
cat > conf/myca.cnf << eof
# cnf start here
[ca]
default_ca = myca
[myca]
dir = [my home]/myca/
database = $dir/index.txt
new_certs_dir = $dir/certs
certificate = $dir/cacert.pem
serial = $dir/serial
private_key = $dir/private/cakey.pem
randfile = $dir/private/.rand
default_days = 365
default_crl_days= 30
default_md = md5
unique_subject = no
policy = my_policy
[my_policy]
countryname = optional
stateorprovincename = optional
localityname = optional
organizationname = optional
organizationalunitname = optional
commonname = supplied
emailaddress = optional
# cnf ended here
eof
mkdir $home/myssl
cd $home/myssl
openssl req -newkey rsa:2048 -keyout serverkey.pem -keyform pem -out serverreq.pem -outform pem
#按照提示輸入密碼及其他相關資訊,執行成功後,會輸出serverkey.pem(私鑰)和serverreq.pem(簽發請求檔案,需要給ca進行簽發,然後得到相應的簽發證書)
#檢視簽發請求內容(與其他檢視類似):
openssl req -in serverreq.pem -text -noout
第三部分:使用自建ca簽發上面生成證書簽發請求
openssl ca -in serverreq.pem -out servercert.pem -config $home/myca/conf/myca.cnf
#需要特別注意-config引數,指定了所使用的配置檔案及ca,在配置檔案中有自建ca的引數資訊。具體看上面的配置檔案
第四部分:生成ssl所需的證書:
上述使用openssl 版本號:openssl 1.0.0-fips 29 mar 2010mkdir $home/myssl
cd $home/myssl
#生成服務端私鑰及簽發請求,生成私鑰 serverkey.pem;簽發請求serverreq.pem
openssl req -newkey rsa:2048 -keyout serverkey.pem -keyform pem -out serverreq.pem -outform pem
#ca簽發證書,生成證書檔案servercert.pem
openssl ca -in serverreq.pem -out servercert.pem -config $home/myca/conf/myca.cnf
#生成客戶端私鑰及簽發請求,生成私鑰 clientkey.pem;簽發請求clientreq.pem
openssl req -newkey rsa:2048 -keyout clientkey.pem -keyform pem -out clientreq.pem -outform pem
#ca簽發證書,生成證書檔案clientcert.pem
openssl ca -in clientreq.pem -out clientcert.pem -config $home/myca/conf/myca.cnf
ssl連線中,需要使用到的檔案有:
serverkey.pem servercert.pem cacert.pem
clientkey.pem clientcert.pem cacert.pem
cacert.pem是自建ca中自籤得到的ca證書,在$home/myca/目錄下。
OpenSSL建立根CA並簽發證書
windows下安裝配置openssl,建立democa資料夾,建立相應資料夾和檔案,命令列進入openssl 生成根ca金鑰 生成根證書 req new x509 days 7300 key ca.key out ca.crt subj c cn st provin l city o org ou...
自建ca根證書 如何建立私有 CA 並簽發證書
為什麼需要自己的 ca?因為公共 ca 比如排名前幾的這幾家 comodo,symantec,globalsign,digicert,startcom 頒發證書要收費,而且 很貴。當然現在也有了像 letsencrypt 這樣的免費 ca。我們的應用是企業內網,網域名稱使用私有網域名稱,沒有辦法使用...
使用Openssl生成CA及簽發證書方法
準備步驟 生成 ca 1 在dos視窗中轉換到out32dll目錄下。例如 cd e 電子書 openssl openssl 0.9.8g out32dll 2 生成ca的key檔案 執行如下命令 openssl genrsa out catest.key 1024 執行成功後,在out32dll目...