日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
httpsOpenSSL如何生成rootCA及簽發(fā)證書(shū)-創(chuàng)新互聯(lián)

https OpenSSL如何生成root CA及簽發(fā)證書(shū),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開(kāi)發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開(kāi)發(fā),軟件開(kāi)發(fā),成都小程序開(kāi)發(fā),10年建站對(duì)圍欄護(hù)欄等多個(gè)行業(yè),擁有豐富建站經(jīng)驗(yàn)。

一、openssl 簡(jiǎn)介

        openssl 是目前最流行的 SSL 密碼庫(kù)工具,其提供了一個(gè)通用、健壯、功能完備的工具套件,用以支持SSL/TLS 協(xié)議的實(shí)現(xiàn)。官網(wǎng): https://www.openssl.org/source/ ,其中有3個(gè)主要的用途:1、密碼算法庫(kù)(建立 RSA、DH、DSA key 參數(shù),計(jì)算消息摘要,使用各種 Cipher加密/解密) 2、密鑰和證書(shū)封裝管理功能(建立 X.509 證書(shū)、證書(shū)簽名請(qǐng)求(CSR)和CRLs(證書(shū)回收列表));3、SSL通信API接口(SSL/TLS 客戶端以及服務(wù)器的測(cè)試,處理S/MIME 或者加密郵件)。

二、安裝openssl(linux CentOS7 32位)

        如果使用的是unix操作系統(tǒng),可能安裝系統(tǒng)的時(shí)候,這個(gè)庫(kù)就已經(jīng)有且存在了。但是在使用前,需要注意下當(dāng)前openssl的庫(kù)的版本。     

openssl version
OpenSSL 1.0.1 14 Mar 2012

        因?yàn)榘姹?.0.1是一個(gè)很重要的風(fēng)水嶺版本。因?yàn)?.0.1是第一個(gè)支持TLS1.1和1.2的版本。支持新的協(xié)議。操作系統(tǒng)的選擇也很重要,比如Ubuntu 12.04 LTS,客戶端不支持SSL2。這里安裝以CentOS7系統(tǒng)為例:

A、 下載openssl庫(kù)文件:https://www.openssl.org/source/  

B、將下載的壓縮包放在根目錄下,解壓縮,進(jìn)入解壓縮文件(得到openssl-openssl-1.0.0文件夾)cd openssl-1.0.0

C、編譯前配置openssl,執(zhí)行命令:./config --prefix=/usr/local/openssl,其中 ( --prefix )參數(shù)為欲安裝之目錄,也就是安裝后的檔案會(huì)出現(xiàn)在該目錄下。

D、編譯openssl,執(zhí)行命令: make install 

1、問(wèn)題描述:安裝完成,查看版本信息的時(shí)候報(bào)錯(cuò)了,缺少一個(gè)庫(kù)文件libssl.so.1.1。

[root@b6e4cbd27773 /usr/local/openssl/ loading shared libraries: libssl.so. file: No such file or directory
2、解決方法有依賴沒(méi)裝libssl。在/etc/ld.so.conf文件中寫(xiě)入openssl庫(kù)文件的搜索路徑,使用修改后的conf生效即可:
echo "/usr/local/lib64" >> /etc/ld.so.conf
ldconfig -v

三、使用openssl生成RSA密鑰對(duì)

         使用openssl的私鑰產(chǎn)生公鑰前,需要了解以下幾點(diǎn):

1、key算法:openssl 支持生成RSA,DSA,ECDSA的密鑰對(duì),但是RSA是目前使用最普遍的。

2、Key長(zhǎng)度:RSA的2048是公認(rèn)較比較安全的key長(zhǎng)度。

3、密碼(Passphrase):在key上使用密碼是一個(gè)可選值,但是一般都是強(qiáng)烈建議的(官網(wǎng)這樣寫(xiě)的,實(shí)際項(xiàng)目中很多都沒(méi)有設(shè)置口令),這樣每次使用key文件時(shí),都需要輸入這個(gè)密碼才能使用,增強(qiáng)了其安全性,但是隨之而來(lái)的易用性也會(huì)變差。  

         使用genrsa命令來(lái)生成RSA key( 產(chǎn)生DSA其他算法的key文件,可以直接參考學(xué)習(xí)官網(wǎng)教程,在此處以常用的為例),2步驟能完成:

A、生成私鑰:

         使用命令:openssl genrsa -aes128 -out fd.key 2048 。以下輸入了為這個(gè)key值設(shè)置了密碼,且密碼使用aes128加密保存。

$ openssl genrsa -aes128 -out fd.key 2048

Generating RSA private key, 2048 bit long modulus

....+++...................................................................................+++e is 65537 (0x10001)
Enter pass phrase for fd.key: ****************Verifying - Enter pass phrase for fd.key: ****************

         這個(gè)key文件就是私鑰文件??梢圆榭聪挛募?nèi)容:

$ cat fd.key

-----BEGIN RSA PRIVATE KEY-----Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,01EC21976A463CE36E9DB59FF6AF689A
vERmFJzsLeAEDqWdXX4rNwogJp+y95uTnw+bOjWRw1+O1qgGqxQXPtH3LWDUz1Ym
mkpxmIwlSidVSUuUrrUzIL+V21EJ1W9iQ71SJoPOyzX7dYX5GCAwQm9Tsb40FhV/[21 lines removed...]
4phGTprEnEwrffRnYrt7khQwrJhNsw6TTtthMhx/UCJdpQdaLW/TuylaJMWL1JRW
i321s5me5ej6Pr4fGccNOe7lZK+563d7v5znAx+Wo1C+F7YgF+g8LOQ8emC+6AVV
-----END RSA PRIVATE KEY-----

 B、生成公鑰:

         使用命令:openssl rsa -in fd.key -pubout -out fd-public.key

openssl rsa -in fd.key -pubout -out fd-public.key
Enter pass phrase for fd.key: ****************

         查看這個(gè)key文件,就是公鑰:

$ cat fd-public.key
-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnlccwQ9FRyJYHM8sFNsY
PUHJHJzhJdwcS7kBptutf/L6OvoEAzCVHi/m0qAA4QM5BziZgnvv+FNnE3sgE5pz
iovEHJ3C959mNQmpvnedXwfcOIlbrNqdISJiP0js6mDCzYjSO1NCQoy3UpYwvwj7
0ryR1F+abARehlts/Xs/PtX3VamrljiJN6JNgFICy3ZvEhLZEKxR7oob7TnyZDrj
IHxBbqPNzeiqLCFLFPGgJPa0cH8DdovBTesvu7wr/ecsf8CYyUCdEwGkZh9DKtdU
HFa9H8tWW2mX6uwYeHCnf2HTw0E8vjtOb8oYQxlQxtL7dpFyMgrpPOoOVkZZW/P0
NQIDAQAB
-----END PUBLIC KEY-----

三、獲取權(quán)威機(jī)構(gòu)頒發(fā)證書(shū)步驟

        獲取權(quán)威機(jī)構(gòu)頒發(fā)的證書(shū),需要先得到私鑰的key文件(.key),然后使用私鑰的key文件生成sign req 文件(.csr),最后把csr文件發(fā)給權(quán)威機(jī)構(gòu),等待權(quán)威機(jī)構(gòu)認(rèn)證,認(rèn)證成功后,會(huì)返回證書(shū)文件(.crt)。 

A:生成私鑰key。

        與第二節(jié)使用openssl生成RSA密鑰對(duì)的步驟A一致。使用命令:openssl genrsa -aes128 -out fd.key 2048 

B:私鑰的key文件生成sign req 文件(.csr)

      生成csr文件時(shí),需要填寫(xiě)一些關(guān)于待簽人或者公司的一些信息,比如國(guó)家名,省份名,組織機(jī)構(gòu)名,主機(jī)名,email名,有些信息可以不填寫(xiě),使用.標(biāo)識(shí)。

        使用命令:openssl req -new -key fd.key -out fd.csr。過(guò)程如下:           

$ openssl req -new -key fd.key -out fd.csr

Enter pass phrase for fd.key: ****************You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:London
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Feisty Duck Ltd
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www.feistyduck.com
Email Address []:webmaster@feistyduck.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

 C、把csr文件發(fā)給權(quán)威機(jī)構(gòu),等待權(quán)威機(jī)構(gòu)認(rèn)證,交費(fèi)獲取證書(shū)即可。

四、OpenSSL生成root CA及簽發(fā)證書(shū)

         有時(shí)候,使用SSL協(xié)議是自己內(nèi)部服務(wù)器使用的,這時(shí)可以不必去找第三方權(quán)威的CA機(jī)構(gòu)做證書(shū),可以做自簽證書(shū)(自己創(chuàng)建root CA(非權(quán)威))主要有以下三個(gè)步驟。

A:創(chuàng)建openssl.cnf在使用default-ca時(shí)需要使用的SSL的工作目錄(第一次必須要設(shè)置)。

         1、查看openssl的配置文件:

$ openssl version -a

OpenSSL 1.0.1e-fips 17 Nov 2016built on: Fri Nov 18 16:28:23 CST 2016platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/etc/pki/tls"engines:  rdrand dynamic

         2、找到OPENSSLDIR: "/etc/pki/tls"的配置文件openssl.cnf

        根據(jù)配置文件下的[ CA_default ]節(jié)點(diǎn)默認(rèn)值,創(chuàng)建對(duì)應(yīng)文件夾和文件。

https OpenSSL如何生成root CA及簽發(fā)證書(shū)

         按順序在/etc/pki/CA下執(zhí)行以下命令創(chuàng)建文件夾和文件:

        https OpenSSL如何生成root CA及簽發(fā)證書(shū)

        其中,certs:存放已頒發(fā)的證書(shū);newcerts:存放CA指令生成的新證書(shū);private:存放私鑰;crl:存放已吊銷的整數(shù);index.txt:penSSL定義的已簽發(fā)證書(shū)的文本數(shù)據(jù)庫(kù)文件,這個(gè)文件通常在初始化的時(shí)候是空的;serial:證書(shū)簽發(fā)時(shí)使用的序列號(hào)參考文件,該文件的序列號(hào)是以16進(jìn)制格式進(jìn)行存放的,該文件必須提供并且包含一個(gè)有效的序列號(hào)。

        執(zhí)行完后,當(dāng)前目錄為:

[tt@SWEBMYVMM000210 /etc/pki/CA]$ll
total 20drwxrwxrwx 2 root root 4096 Mar 12 11:08 certs
drwxrwxrwx 2 root root 4096 Nov 18  2016 crl-rwxrwxrwx 1 root root    0 Mar 12 11:06 index.txt
drwxrwxrwx 2 root root 4096 Nov 18  2016 newcerts
drwxrwxrwx 2 root root 4096 Nov 18  2016 private-rwxrwxrwx 1 root root   33 Mar 12 11:12 serial
小插曲:使用自簽證書(shū)簽名用戶證書(shū)時(shí)報(bào)錯(cuò),文件不存在
 1、問(wèn)題描述:
$ openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
     Using configuration from /etc/pki/tls/openssl.cnf
     /etc/pki/CA/serial: No such file or directory

       error while loading serial number
       139996157081440:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/pki/CA/serial','r')
       139996157081440:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:

 2、問(wèn)題解決:
     如果不設(shè)置工作目錄,后續(xù)第三步的最后一小步,使用openssl的ca命令產(chǎn)生用戶的ca證書(shū)時(shí)會(huì)報(bào)錯(cuò),創(chuàng)建openssl.cnf在使用default-ca時(shí)需要使用的SSL的工作目錄即可。

 B:生成CA根證書(shū)(root ca證書(shū))。

         步驟:生成CA私鑰(.key)-->生成CA證書(shū)請(qǐng)求(.csr)-->自簽名得到根證書(shū)(.crt)(CA給自已頒發(fā)的證書(shū))。

# Generate CA private key   --->ca.key

openssl genrsa -out ca.key 2048   

# Generate CSR   --->ca.csr 

openssl req -new -key ca.key -out ca.csr  

# Generate Self Signed certificate(CA 根證書(shū))  ---> ca.crt  

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

小插曲:直接根據(jù)key文件獲取CA根證書(shū)的命令
方法:在得到key文件后,執(zhí)行以下命令:
     openssl req -new -x509 -days 365 -key fd.key -out fd.crt
     如果不想填寫(xiě)那些注冊(cè)信息,執(zhí)行以下命令:
     openssl req -new -x509 -days 365 -key fd.key -out fd.crt subj "/C=GB/L=London/O=Feisty Duck Ltd/CN=www.feistyduck.com

 C:用自簽根證書(shū) ca.crt  給用戶證書(shū)簽名。

          步驟:生成私鑰(.key)-->生成證書(shū)請(qǐng)求(.csr)-->用CA根證書(shū)簽名得到證書(shū)(.crt)

#  private key  --->server.key
openssl genrsa  -out server.key 1024
# generate csr  --->server.csr
openssl req -new -key server.key -out server.csr
# generate certificate  --->server.crt
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
小插曲:用CA根證書(shū)簽名時(shí)報(bào)錯(cuò),The mandatory stateOrProvinceName field was missing
1、問(wèn)題描述:sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
The mandatory stateOrProvinceName field was missing2、出現(xiàn)原因:openssl.cnf中CA policy有三個(gè)match,必須要填一樣的,或者改成optional
3、解決方法:修改配置文件,修改后為:

  # For the CA policy
  [ policy_match ]
  countryName = optional
  stateOrProvinceName = optional
  organizationName = optional
  organizationalUnitName = optional
  commonName = supplied
  emailAddress = optional

D:證書(shū)的簡(jiǎn)單使用。

      把server.crt以及server.key保存在服務(wù)器端等待程序加載使用;把ca.key保存在客戶端,如果客戶端需要驗(yàn)證服務(wù)器端發(fā)的證書(shū)時(shí)使用。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


新聞名稱:httpsOpenSSL如何生成rootCA及簽發(fā)證書(shū)-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://www.dlmjj.cn/article/dgjppd.html