欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

OpenSSL中生成自簽名證書的方法有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹了OpenSSL中生成自簽名證書的方法有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

OpenSSL的命令行數(shù)量很龐大,很嚇唬人。

這是因?yàn)镺penSSL所涉及到的領(lǐng)域的確很多,比如各種對(duì)稱/非對(duì)稱算法,隨機(jī)數(shù),簽名,加密,證書,結(jié)構(gòu)分析,PKI體系的構(gòu)建等,這些領(lǐng)域的背后有一大堆的RFC文檔,OpenSSL把這些理論上的東西都落實(shí)為算法供我們學(xué)習(xí)和使用。

算法的實(shí)現(xiàn)可以有2種形式:API和“工具”。

前者是由程序員使用的函數(shù)庫(kù),后者是編譯完成的本地代碼——它有3個(gè)名字:命令、工具,應(yīng)用程序。

例如生成自簽名證書的命令行:

openssl req -x509 -newkey rsa:8192 -keyout rca.key -out rca.cer -days 365

其中的“req”是“命令”(也可稱為“工具”和“應(yīng)用程序”),-days是“選項(xiàng)”,365是“參數(shù)”。

俗話說(shuō)“萬(wàn)變不離其宗”,雖然它的命令行龐大而復(fù)雜,但還是有規(guī)律可循的,比如-inform 指定輸入文件格式,-outform指定輸出文件格式,這兩個(gè)選項(xiàng)重復(fù)出現(xiàn)在多個(gè)命令之中;還有選項(xiàng)雖然名字相同,但對(duì)不同的命令有不同的功能,比如 -in選項(xiàng),如果配合req命令,就是輸入證書請(qǐng)求文件,如果配合x509命令,就是輸入X.509格式的證書。

鑒于OpenlSSL命令行的靈活性,同一個(gè)功能可以由不同的命令行完成,以下是我的一些總結(jié)。

當(dāng)然,很可能還有未囊括進(jìn)來(lái)的命令行,歡迎你寫在評(píng)論區(qū),我會(huì)在正文把你列為感謝作者。

讓我們共同完成這個(gè)很有趣的“工程”——給Open SSL找相同!

當(dāng)前版本號(hào):OpenSSL for Windows 1.1.1c  28 May 2019

生成自簽名證書的4種方法

方法 1:req命令(不需要請(qǐng)求文件)

::生成自簽名證書和私鑰
openssl req -x509 -newkey rsa:8192 -keyout rca.key -out rca.cer -days 365

方法2:x509命令(需要請(qǐng)求文件)

::生成請(qǐng)求文件和私鑰
openssl req -new -out ca.csr -keyout ca.key
::生成自簽名證書
openssl x509 -signkey ca.key -req -days 365 -in ca.csr -out cacert.pem

方法3:ca命令(需要請(qǐng)求文件)

:: 創(chuàng)建ca命令所需的文件和目錄結(jié)構(gòu)
d:&cd\&md ca1&cd\ca1&md democa&md democa\newcerts&md democa\private
cd.>democa\index.txt&echo ca01>democa\serial
::生成請(qǐng)求文件和私鑰,私鑰保護(hù)密碼是1234:
openssl req -new -out ca.csr -keyout ca.key -days 3650 -subj /C=CN/ST=jiangsu/L=nanjing/O=Tiger/OU=CA-1/CN=CA1/emailAddress=ca1@tiger.com -set_serial 0xca01 -passout pass:1234
::生成自簽名證書
openssl ca -selfsign -in ca.csr -keyfile ca.key -out ca.cer -outdir .  -passin pass:1234 -days 3650 -create_serial -extensions v3_ca

方法4:ca命令重簽名

讀入之前的自簽名證書ca1.cer,以新的DN重簽名:

:: 創(chuàng)建ca命令所需的文件和目錄結(jié)構(gòu)
d:&cd\&md ca1&cd\ca1&md democa&md democa\newcerts&md democa\private
cd.>democa\index.txt&echo ca01>democa\serial

:: 生成自簽名的CA1根證書,私鑰,私鑰保護(hù)密碼是1234:
openssl req -x509 -newkey rsa:8192 -keyout ca1.key -out ca1.cer -days 3650 -subj /C=CN/ST=jiangsu/L=nanjing/O=Tiger/OU=CA-1/CN=CA1/emailAddress=ca1@tiger.com -set_serial 0xca01 -passout pass:1234

:: 以新的DN名稱重新簽名CA1根證書,輸出的新自簽名證書是ca1-ok.cer
openssl ca -ss_cert ca1.cer -keyfile ca1.key -cert ca1.cer -out ca1-ok.cer -outdir . -create_serial -policy policy_anything -batch -passin pass:1234 -subj /C=CN/O=aa/ST=bb/CN=CA1

作為CA給(中間CA或者最終實(shí)體)簽署證書的2種方法

分別是X509命令和CA命令,詳見我的另外2篇文章,這里不再贅述。

OpenSSL自建CA和CA鏈,給主機(jī)簽發(fā)證書的批處理(使用CA命令)

OpenSSL自建CA和CA鏈,給主機(jī)簽發(fā)證書的批處理(使用x509命令)

生成RSA私鑰的3種方法

方法1:genrsa命令:

openssl genrsa -out ca.key 8192

方法2:genpkey命令:

::用密碼123456保護(hù)私鑰
openssl genpkey -out rsa_pri.key -outform PEM -pass pass:123456 -aes-128-cbc -algorithm RSA -pkeyopt rsa_keygen_bits:8192

方法3:req命令

openssl req -x509 -newkey rsa:8192 -keyout rca.key -out rca.cer -days 3650

RSA加密的2種方法

方法1:pkeyutl命令:

::公鑰加密
openssl rsautl -encrypt -in a.txt -out 1.enc -inkey ca.pub -pubin
::私鑰解密
openssl rsautl -decrypt -in 1.enc -out dec.txt -inkey ca.key

注:該命令的缺陷是只能對(duì)短小的文件進(jìn)行加密和簽名操作,如果太大會(huì)報(bào)以下錯(cuò)誤:

OpenSSL中生成自簽名證書的方法有哪些

方法2:rsautl命令:

經(jīng)實(shí)驗(yàn),對(duì)于當(dāng)前版本的OpenSSL,該命令能處理的文件大為1013字節(jié)

::公鑰加密
openssl rsautl -encrypt -in a.txt -out 1.enc -inkey ca.pub -pubin
::私鑰解密
openssl rsautl -decrypt -in 1.enc -out dec.txt -inkey ca.key

注:若想要RSA加密(以及下文的簽名)無(wú)體積限制,可以使用gpg4win。

簽名/驗(yàn)證簽名的4種方法

方法1:dgst命令:

::對(duì)待簽名的文件體積沒(méi)有限制;原理是生成待簽名文件的散列值,然后用公鑰/私鑰加密該散列值。
::用私鑰key.pem給1.zip生成二進(jìn)制的簽名文件,算法是SHA-256,簽名文件是1.sig,注意不能使用-hex選項(xiàng):
openssl dgst -sha256 -sign key.pem -out 1.sig 1.zip
::用公鑰對(duì)生成的簽名文件1.sig與源文件1.zip進(jìn)行比對(duì)驗(yàn)證,注意簽名的算法和驗(yàn)證簽名的算法要相同:
openssl dgst -sha256 -verify pub.pem -signature 1.sig 1.zip
::同上,只不過(guò)用私鑰驗(yàn)證簽名
openssl dgst -sha256 -prverify key.pem -signature 1.sig 1.zip

方法2:md5命令(語(yǔ)法與dgst一模一樣):

::對(duì)待簽名的文件體積沒(méi)有限制;原理是生成待簽名文件的散列值,然后用公鑰/私鑰加密該散列值。
::用私鑰ca.key給文件text.txt簽名,生成了名為sign的簽名文件:
openssl md5 -sha256 -sign ca.key -out sign test.txt
::用公鑰ca.pub對(duì)生成的簽名文件1.sig與源文件1.zip進(jìn)行比對(duì)驗(yàn)證,注意簽名的算法和驗(yàn)證簽名的算法要相同:
openssl md5 -sha256 -verify ca.pub -signature sign test.txt
::同上,只不過(guò)用私鑰驗(yàn)證簽名
openssl md5 -sha256 -prverify ca1.key -signature sign test.txt

方法3:rsautl命令:

::rsautl只能給小文件簽名,經(jīng)我的實(shí)驗(yàn)不能大于1013字節(jié)
::私鑰簽名(其實(shí)就是私鑰加密文件)
openssl rsautl -sign -in abc.txt -out abc.sig -inkey ca.key
::公鑰驗(yàn)證(其實(shí)就是用公鑰將其解密),如果通過(guò)就恢復(fù)出原始數(shù)據(jù),否則報(bào)錯(cuò)
openssl rsautl -verify -in abc.sig -out abc.vfy -inkey ca.pub -pubin方法1:pkeyutl令:

方法4:pkeyutl命令:

::pkeyutl只能給散列值簽名。
::實(shí)驗(yàn)?zāi)繕?biāo):給test.txt生成散列值,然后對(duì)散列值簽名,最后驗(yàn)證這個(gè)散列值的簽名。
::先用dgst命令生給文件test.txt成二進(jìn)制的散列值,文件名是test.sig
openssl dgst -sha256 -binary -out test.sig test.txt
::用私鑰給這個(gè)散列值簽名(就是私鑰加密散列值),生成簽名文件md.sig:
openssl pkeyutl -sign -inkey ca.key -keyform PEM -in test.sig -out md.sig
::讀入公鑰、散列值簽名md.sig、散列值test.sig以驗(yàn)證該簽名是否正確。原理就是用公鑰解密md.sig,結(jié)果與test.sig相同即驗(yàn)證通過(guò)
openssl pkeyutl -verify -inkey ca.pub -keyform PEM -pubin -in test.sig -sigfile md.sig

提取公鑰的4種方法

方法1:rsa命令:

openssl rsa -in ca.key -pubout -out ca.pub

方法2:pkey命令:

openssl pkey -in ca.key -pubout -out ca.pub

方法3:req命令:

提取請(qǐng)求文件之中的公鑰:

openssl req -in host.csr -pubkey -out host.pub

方法4:x509命令:

提取證書中的主題(使用者)的公鑰:

openssl x509 -in ca.cer -pubkey -noout -out ca.pub

創(chuàng)建證書鏈2方種法

方法1:雙擊證書,點(diǎn)擊“安裝證書”,把根證書導(dǎo)入“受信任的根證書頒發(fā)機(jī)構(gòu)”,把中間證書導(dǎo)入“中級(jí)證書頒發(fā)機(jī)構(gòu)”,這就把證書鏈導(dǎo)入至windows證書庫(kù),過(guò)程一目了然,截圖略。

方法2:通過(guò)copy命令創(chuàng)建證書鏈,重點(diǎn)是中間證書在前,依次往后排,最后是根證書:

copy ca3.cer+ca2.cer+ca1.cer ca3-chain.cer

驗(yàn)證證書鏈3方種法

方法1:對(duì)應(yīng)創(chuàng)建證書鏈方法1,通過(guò)在Web客戶端將根證書和中間證書導(dǎo)入Windows證書庫(kù),應(yīng)用程序(例如谷個(gè)瀏覽器)可以通過(guò)CryptoAPI驗(yàn)證證書鏈。若要人工驗(yàn)證,雙擊證書即出現(xiàn)層次化的證書鏈結(jié)構(gòu):

OpenSSL中生成自簽名證書的方法有哪些

方法2:對(duì)應(yīng)創(chuàng)建證書鏈方法2,使用verify命令:

openssl verify -CAfile ca-chain.cer host1.cer

方法3:x509命令的-CApath選項(xiàng)

本方法在Windows下操作比較麻煩。先建立目錄,例如yz,然后把根證書和所有中間CA證書都拷貝到該目錄,但要改名為xxxxxxxx.0,其中的8個(gè)x是用openssl x509 -in xx.cer -subject_hash -noout輸出的hash值,后面的.0必須存在。例如ca1是根證書,ca2.cer和ca3.cer是中間證書,host1是ca3給用戶簽署的SSL證書;就把ca1.cer、ca2.cer、ca3.cer都拷貝yz目錄,然后依次改名,比如openssl x509 -in ca1.cer -subject_hash -noout輸出的hash值是8607f596,就將ca1.cer改名為8607f596.0,改名全部完成之后執(zhí)行命令:

openssl verify -CApath yz host1.cer

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“OpenSSL中生成自簽名證書的方法有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

文章題目:OpenSSL中生成自簽名證書的方法有哪些-創(chuàng)新互聯(lián)
瀏覽地址:http://www.chinadenli.net/article0/gchoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃微信公眾號(hào)云服務(wù)器品牌網(wǎng)站設(shè)計(jì)網(wǎng)站制作小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司