久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

利用openssl創(chuàng)建一個(gè)簡單的CA

 譚逸逸 2012-04-14
 本文旨在利用開源openssl軟件,在Linux(或UNIX/Cygwin)下創(chuàng)建一個(gè)簡單的CA,。我們可以利用這個(gè)CA進(jìn)行PKI,、數(shù)字證書相關(guān)的測(cè)試。比如,,在測(cè)試用Tomcat或Apache構(gòu)建HTTPS雙向認(rèn)證時(shí),,我們可以利用自己建立的測(cè)試CA來為服務(wù)器端頒發(fā)服務(wù)器數(shù)字證書,為客戶端(瀏覽器)生成文件形式的數(shù)字證書(可以同時(shí)利用openssl生成客戶端私鑰),。
 
 該簡單的CA將建立在用戶自己的目錄下($HOME/testca),,無需超級(jí)用戶(root)權(quán)限。
 
一. 創(chuàng)建CA
1. 創(chuàng)建CA需要用到的目錄和文件:
執(zhí)行命令如下:
mkdir "$HOME/testca"
cd "$HOME/testca"
mkdir newcerts private conf
chmod g-rwx,o-rwx private
echo "01" > serial
touch index.txt
 
說明:
$HOME/testca為待建CA的主目錄,。其中newcerts子目錄將存放CA簽署(頒發(fā))過的數(shù)字證書(證書備份目錄),。而private目錄用于存放CA的私鑰。目錄conf只是用于存放一些簡化參數(shù)用的配置文件,。
 
文件serial和index.txt分別用于存放下一個(gè)證書的序列號(hào)和證書信息數(shù)據(jù)庫,。
當(dāng)然,偷懶起見,,可以只用按照本文操作即可,,不一定需要關(guān)心各個(gè)目錄和文件的作用。
 
2. 生成CA的私鑰和自簽名證書(即根證書)
創(chuàng)建文件:
vi "$HOME/testca/conf/gentestca.conf"
文件內(nèi)容如下:
####################################
[ req ]
default_keyfile = $ENV::HOME/testca/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = ca_distinguished_name
x509_extensions = ca_extensions
 
[ ca_distinguished_name ]
organizationName = TestOrg
organizationalUnitName  = TestDepartment
commonName = TestCA
emailAddress = [email protected]
 
[ ca_extensions ]
basicConstraints = CA:true
########################################
 
然后執(zhí)行命令如下:
cd "$HOME/testca"
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf"
執(zhí)行過程中需要輸入CA私鑰的保護(hù)密碼,,假設(shè)我們輸入密碼: 888888
 
可以用如下命令查看一下CA自己證書的內(nèi)容
openssl x509 -in cacert.pem -text -noout
 
3. 創(chuàng)建一個(gè)配置文件,,以便后續(xù)CA日常操作中使用:
vi "$HOME/testca/conf/testca.conf"
文件內(nèi)容如下:
####################################
[ ca ]
default_ca      = testca                   # The default ca section
 
[ testca ]
dir            = $ENV::HOME/testca         # top dir
database       = $dir/index.txt          # index file.
new_certs_dir  = $dir/newcerts           # new certs dir
 
certificate    = $dir/cacert.pem         # The CA cert
serial         = $dir/serial             # serial no file
private_key    = $dir/private/cakey.pem  # CA private key
RANDFILE       = $dir/private/.rand      # random number file
 
default_days   = 365                     # how long to certify for
default_crl_days= 30                     # how long before next CRL
default_md     = md5                     # 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             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
 
########################################
 
 
二. CA的日常操作
1. 根據(jù)證書申請(qǐng)請(qǐng)求簽發(fā)證書
假設(shè)收到一個(gè)證書請(qǐng)求文件名為req.pem,文件格式應(yīng)該是PKCS#10格式(標(biāo)準(zhǔn)證書請(qǐng)求格式),。
 
首先可以查看一下證書請(qǐng)求的內(nèi)容,,執(zhí)行命令:
openssl req -in req.pem -text -noout
將看到證書請(qǐng)求的內(nèi)容,,包括請(qǐng)求者唯一的名字(DN)、公鑰信息(可能還有一組擴(kuò)展的可選屬性),。
 
執(zhí)行簽發(fā)命令:
openssl ca -in req.pem -out cert.pem -config "$HOME/testca/conf/testca.conf"
執(zhí)行過程中會(huì)要求輸入訪問CA的私鑰密碼(剛才設(shè)置的888888),。
 
完成上一步后,簽發(fā)好的證書就是cert.pem,,另外$HOME/testca/newcerts里也會(huì)有一個(gè)相同的證書副本(文件名為證書序列號(hào)),。
你可以執(zhí)行以下語句來查看生成的證書的內(nèi)容:
openssl x509 -in cert.pem -text -noout
 
2. 吊銷證書(作廢證書)
一般由于用戶私鑰泄露等情況才需要吊銷一個(gè)未過期的證書,。(當(dāng)然我們用本測(cè)試CA時(shí)其時(shí)很少用到該命令,,除非專門用于測(cè)試吊銷證書的情況)
假設(shè)需要被吊銷的證書文件為cert.pem,則執(zhí)行以下命令吊銷證書:
openssl ca -revoke cert.pem -config "$HOME/testca/conf/testca.conf"
 
3. 生成證書吊銷列表文件(CRL)
準(zhǔn)備公開被吊銷的證書列表時(shí),,可以生成證書吊銷列表(CRL),,執(zhí)行命令如下:
openssl ca -gencrl -out testca.crl -config "$HOME/testca/conf/testca.conf"
還可以添加-crldays和-crlhours參數(shù)來說明下一個(gè)吊銷列表將在多少天后(或多少小時(shí)候)發(fā)布,。
 
可以用以下命令檢查testca.crl的內(nèi)容:
openssl crl -in testca.crl -text -noout
 
三. 自己生成公鑰密鑰,并用測(cè)試CA簽發(fā)數(shù)字證書
我們?cè)谄綍r(shí)測(cè)試時(shí),,可以自己用openssl為服務(wù)器或用戶生成公鑰密鑰,,并用上面創(chuàng)建的CA簽發(fā)對(duì)應(yīng)私鑰(密鑰)的數(shù)字證書。
假設(shè),,我們就用剛才創(chuàng)建CA的操作系統(tǒng)用戶為名為testuser的用戶創(chuàng)建數(shù)字證書,,我們要把待創(chuàng)建的私鑰、證書等都放在目錄$HOME/testuser下:
 
1. 創(chuàng)建密鑰和證書請(qǐng)求(證書請(qǐng)求里包含了公鑰)
創(chuàng)建$HOME/testuser目錄并執(zhí)行命令:
mkdir $HOME/testuser
cd $HOME/testuser
openssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM -subj "/O=TestCom/OU=TestOU/CN=testuser" 
執(zhí)行過程中需要輸入私鑰的保護(hù)密碼,,假設(shè)我們輸入密碼: 222222
 
執(zhí)行完后,,testkey.pem即為用戶的密鑰,而testreq.pem即為證書請(qǐng)求,。
可以用openssl req -in testreq.pem -text -noout查看證書請(qǐng)求的內(nèi)容,。
 
2. 用測(cè)試CA為testuser簽發(fā)證書
同樣還在$HOME/testuser目錄下執(zhí)行命令:
openssl ca -in testreq.pem -out testcert.pem -config "$HOME/testca/conf/testca.conf"
執(zhí)行過程中需要輸入CA的密鑰保護(hù)密碼(剛才設(shè)置的888888),并且最后詢問你是否要給該用戶簽發(fā)證書時(shí)要選y,。
 
執(zhí)行完后,,testcert.pem即為證書,
可以用命令openssl x509 -in testcert.pem -text -noout查看證書內(nèi)容,。
 
3. 制作一個(gè)PKCS12格式的文檔(個(gè)人數(shù)字證書)
我們制作的這個(gè)PKCS#12文件將包含密鑰,、證書和頒發(fā)該證書的CA證書。該文件可以直接用于服務(wù)器數(shù)字證書或個(gè)人數(shù)字證書,。
把前幾步生成的密鑰和證書制作成一個(gè)pkcs12文件的方法執(zhí)行命令:
openssl pkcs12 -export -in testcert.pem -inkey testkey.pem -out testuser.p12 -name testuser -chain -CAfile "$HOME/testca/cacert.pem"
執(zhí)行過程中需要輸入保護(hù)密鑰的密碼(222222),,以及新的保護(hù)pkcs12文件的密碼。
 
執(zhí)行完后,,testuser.p12即為pkcs12文件,。你可以直接拷貝到windows下,作為個(gè)人數(shù)字證書,,雙擊導(dǎo)入IE后就可以使用了,。該文件也可以直接用于tomcat作為服務(wù)器證書使用(我盡量在近期再寫一篇關(guān)于如何自己用tomcat建立HTTPS雙向認(rèn)證測(cè)試環(huán)境的文章),。
 
若要查看testuser.p12的內(nèi)容可以用命令openssl pkcs12 -in testuser.p12
 
說明:
    - 本文中名詞“個(gè)人數(shù)字證書”意識(shí)為包含私鑰和證書的實(shí)體,而不是單指只保護(hù)公鑰的數(shù)字證書,。
    -  openssl版本OpenSSL 0.9.8g 19

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多