国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

centos7 使用openssl 配置證書服務(wù)器并頒發(fā)證書(史上最詳細(xì)版本)

這篇具有很好參考價值的文章主要介紹了centos7 使用openssl 配置證書服務(wù)器并頒發(fā)證書(史上最詳細(xì)版本)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景

最近接到一個任務(wù):由于我們的產(chǎn)品涉及使用數(shù)字證書進(jìn)行簽名、簽章,如果需要使得簽名簽章暗具有法律效力,就必須使用權(quán)威CA中心頒發(fā)的數(shù)字證書,就需要小錢錢;但是對于測試來說,就可以適當(dāng)減少小錢錢的使用;于是,可以考慮自建證書服務(wù)器,自己頒發(fā)證書,然后就使用自建證書服務(wù)器的頒發(fā)的證書測試就好了!

為了完成這個目的,第一步就是搭建證書服務(wù)器,于是我選了臺linux服務(wù)器進(jìn)行配置。

關(guān)于centos linux服務(wù)器系統(tǒng)配置證書服務(wù)器的資料網(wǎng)上有很多,過程中也踩了很多坑。不能說網(wǎng)上資料不對,只能說對自己不適用,嘿嘿嘿嘿 。 針對這個任務(wù)的完成過程以及中間涉及的知識點(diǎn)以及注意事項(xiàng),我將行程一個系列來介紹。

本文是配置證書服務(wù)器的介紹。

一:安裝openssl工具

rpm -qa openssl

yum install -y openssl

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

如上圖所示,通過yum install -y openssl 安裝openssl工具。安裝好了openssl工具之后,默認(rèn)安裝目錄為:/etc/pki/目錄,

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

其默認(rèn)配置文件目錄為:?/etc/pki/tls/openssl.cnf。該文件主要設(shè)置了證書請求、簽名、crl相關(guān)的配置。主要相關(guān)的偽命令為ca和req。后將出一個openssl.cnf的詳細(xì)介紹。

1.1openssl.cnf文件簡介

該配置文件主要的作用如下:

1.1.1配置默認(rèn)路徑

配置默認(rèn)路徑:包括默認(rèn)的CA路徑dir、證書路徑certs、crl路徑crl_dir、根證書路徑certificate、serial文件路徑serial、私鑰路徑private_key等。生成根證書的私鑰、證書時可以根據(jù)此配置文件里的設(shè)置設(shè)定文件名,也可以根據(jù)自己的需要自行設(shè)置文件名,然后再對此配置文件進(jìn)行修改,將對應(yīng)的文件名信息改正確。

? ? ? ? 一般需要設(shè)置的就是:

1)dir???????????? = /etc/pki/CA? ? 設(shè)定這個路徑 為home路徑,所有ca相關(guān)的證書都在這個文件夾里

2)certificate???? = $dir/XXXX? 設(shè)定根證書文件路徑 ,這是自建證書服務(wù)器時需要去生成的。

3)serial????????? = $dir/serial? 這個 就建議就用serial做文件名,即需要在這個路徑下生成一個名為serial的文件,并且需要向這個文件中添加初始值?

4)private_key???? = $dir/private/XXXX? # The private key 設(shè)定根證書對應(yīng)的私鑰文件路徑

####################################################################

[ ca ]

default_ca????? = CA_default??????????? # The default ca section

####################################################################

[ CA_default ]

dir???????????? = /etc/pki/CA?????????? # Where everything is kept

certs?????????? = $dir/certs??????????? # Where the issued certs are kept

crl_dir???????? = $dir/crl????????????? # Where the issued crl are kept

database??????? = $dir/index.txt??????? # database index file.

#unique_subject = no??????????????????? # Set to 'no' to allow creation of

??????????????????????????????????????? # several ctificates with same subject.

new_certs_dir?? = $dir/newcerts???????? # default place for new certs.

certificate???? = $dir/cacert.pem?????? # The CA certificate

serial????????? = $dir/serial?????????? # The current serial number

crlnumber?????? = $dir/crlnumber??????? # the current crl number

??????? ????????????????????????????????# must be commented out to leave a V1 CRL

crl???????????? = $dir/crl.pem????????? # The current CRL

private_key???? = $dir/private/cakey.pem# The private key

RANDFILE??????? = $dir/private/.rand??? # private random number file

1.1.2規(guī)定簽發(fā)的證書的用途

如規(guī)定證書中的密鑰用途:

這個證書用途的體現(xiàn)在:當(dāng)使用證書瀏覽器查看時看到的密鑰用法,如通過瀏覽器---internet選項(xiàng)---內(nèi)容---證書---詳細(xì)信息中顯示的:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

證書的用途一般分為兩種:加密證書簽名證書,如常規(guī)的用于https驗(yàn)證的就只需要加密作用就行,本次中需要的是簽名證書,對于簽名證書來說,其用途必須包含:Digital Signature。

這個需要在配置文件中開啟,默認(rèn)是不開放注釋的狀態(tài)。

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

要將其開放出來:

# This is typical in keyUsage for a client certificate.

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

1.1.3規(guī)定證書信息的匹配情況

具體體現(xiàn)在證書生成證書請求文件時設(shè)定的要與根證書設(shè)定的一樣,如果設(shè)定不一樣,在做證書簽名時就會報(bào)錯,提示對應(yīng)設(shè)定不匹配。

如:以下配置就要求?countryName、stateOrProvinceName、organizationName三個都是一樣的。

# A few difference way of specifying how similar the request should look

# For type CA, the listed attributes must be the same, and the optional

# and supplied fields are just that :-)

policy????????? = policy_match

# For the CA policy

[ policy_match ]

countryName???????????? = match

stateOrProvinceName???? = match

organizationName??????? = match

organizationalUnitName? = optional

commonName????????????? = supplied

emailAddress??????????? = optional

二:生成根證書

生成證書的步驟是:生成私鑰文件---》生成證書請求文件---》生成公鑰證書文件并進(jìn)行簽名。

生成證書的過程中會涉及多個文件,如:私鑰文件、證書請求文件、公鑰證書文件等,非常容易搞混淆,一定要區(qū)分清楚,建議就從文件名、后綴加以區(qū)分,否則就真的非常容易踩坑。如私鑰就用xxxKey.pem;證書請求文件:xxxreq.pem、公鑰證書文件:xxxCert.crt。一定要搞清楚自己的文件到底是哪種類型的!網(wǎng)上的資料很多就是,一下是這個后綴一下又是那個后綴,會搞懵逼的。

2.1生成根證書的私鑰

openssl genrsa 命令是會用來生成 RSA 私有秘鑰,不會生成公鑰,因?yàn)楣€提取自私鑰。生成私鑰時是可以指定私鑰長度和密碼保護(hù)。如果需要查看公鑰或生成公鑰,可以使用 openssl rsa 命令。

?openssl genrsa [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des]

可以通過openssl genrsa ?命令查看命令具體參數(shù)與用法:

[root@ecs-be9a CA]#openssl genrsa ?
usage: genrsa [args] [numbits]
 -des            encrypt the generated key with DES in cbc mode
 -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)
 -idea           encrypt the generated key with IDEA in cbc mode
 -seed
                 encrypt PEM output with cbc seed
 -aes128, -aes192, -aes256
                 encrypt PEM output with cbc aes
 -camellia128, -camellia192, -camellia256
                 encrypt PEM output with cbc camellia
 -out file       output the key to 'file
 -passout arg    output file pass phrase source
 -f4             use F4 (0x10001) for the E value
 -3              use 3 for the E value
 -engine e       use engine e, possibly a hardware device.
 -rand file:file:...
                 load the file (or the files in the directory) into
                 the random number generator
[root@ecs-be9a CA]#

openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048? 生成私鑰,私鑰中含有公鑰,如果需要公鑰,需要單獨(dú)提取公鑰 。

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

如果在openssl genrsa 命令中指定加密算法如 -des3 ,則會提示輸入私鑰保護(hù)密碼,那么下次使用這個私鑰文件的時候就會提示輸入私鑰密碼,如命令:openssl genrsa -des3 -out test1.key 2048執(zhí)行效果如下圖所示:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

2.2生成根證書的證書請求文件

2.2.1準(zhǔn)備

在生成證書請求文件之前,需要形成記錄數(shù)據(jù)的文件index.txt以及最初始的自簽名證書的序列號可serial文件:

?touch index.txt? #生成數(shù)據(jù)記錄文件index.txt

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

向serial中寫入證書初始序列號,這個serial文件路徑就按照openssl.cnf配置文件中的路徑生成就可以。網(wǎng)上很多是向serial中寫入01,像這樣:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

但是,實(shí)際上,這個序列號最終是顯示到自簽名的根證書的序列號里的,像這樣:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

并且對于x509證書來說,序列號應(yīng)該是一個32位的類似uuid的標(biāo)志證書序列號的,因此,我個人不建議直接向serial中寫01,就隨便一個32位的如:

a87a2d6dec4d07bd9095c9b2ee73b2ea
9579518878956341ccc51615197eb0f3
51b55180d6da29cdbaddf60d9430230a
5ce48cc7f764ad17aa6fe2a1ffab06d5
dd7b4730fa89a66b8edd977415a8b688
1ce7727ba8fb7be4dca36c354d1ae61f

因此,在我多次嘗試,證書簽名還是驗(yàn)證不通過證書鏈驗(yàn)證的情況下,我是這樣操作的:

?echo a87a2d6dec4d07bd9095c9b2ee73b2ea > serial

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

不過,目前位置,我暫時也能確定這個屬性對于我的需求是否有影響。大家需要的時候也可以再觀察觀察。

2.2.2生成根證書的證書請求文件

創(chuàng)建根證書請求文件使用openssl req命令。

該命令主要的功能有,生成證書請求文件, 查看驗(yàn)證證書請求文件,還有就是生成自簽名證書。生成證書請求需要什么:申請者需要將自己的信息及其公鑰放入證書請求中。但在實(shí)際操作過程中,所需要提供的是私鑰而非公鑰,建議使用CA的私鑰文件/etc/pki/CA/private/cakey.pem來創(chuàng)建待自簽署的證書請求文件,雖非必須,但方便管理。在生成證書請求文件時,就會根據(jù)配置文件里要求的整合素必須項(xiàng)進(jìn)行輸入設(shè)置。另外,還需要將提供的數(shù)據(jù)進(jìn)行數(shù)字簽名

(使用單向加密),保證該證書請求文件的完整性和一致性,防止他人盜取后進(jìn)行篡改。

openssl req命令參數(shù)說明:

??? -new??? :說明生成證書請求文件

???? -x509?? :說明生成自簽名證書

???? -key??? :指定已有的秘鑰文件生成秘鑰請求,只與生成證書請求選項(xiàng)-new配合。

???? -newkey :-newkey是與-key互斥的,-newkey是指在生成證書請求或者自簽名證書的時候自動生成密鑰,

????????????? 然后生成的密鑰名稱由-keyout參數(shù)指定。當(dāng)指定newkey選項(xiàng)時,后面指定rsa:bits說明產(chǎn)生

????????????? rsa密鑰,位數(shù)由bits指定。 如果沒有指定選項(xiàng)-key和-newkey,默認(rèn)自動生成秘鑰。

???? -out??? :-out 指定生成的證書請求或者自簽名證書名稱

???? -config :默認(rèn)參數(shù)在ubuntu上為 /etc/pki/tls/openssl.cnf, 可以使用-config指定特殊路徑的配置文件

???? -nodes? :如果指定-newkey自動生成秘鑰,那么-nodes選項(xiàng)說明生成的秘鑰不需要加密,即不需要輸入passphase.??

???? -batch? :指定非交互模式,直接讀取config文件配置參數(shù),或者使用默認(rèn)參數(shù)值?????

?openssl req -new -x509 -key ?/etc/pki/CA/private/cakey.pem -out careq.pem -days 730 -config ?/etc/pki/tls/openssl.cnf? ?#使用-key指定使用的根證書的私鑰文件 ?/etc/pki/CA/private/cakey.pem,-config指定配置文件?/etc/pki/tls/openssl.cnf ; -days 730指定有效期為730天 ;-out careq.pem指定輸出文件為當(dāng)前命令執(zhí)行目錄下careq.pem
?

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

生成證書請求文件時,要求輸入配置文件里設(shè)定的必須的信息值。如在上文中我配置了要求countryName、stateOrProvinceName、organizationName三個是一致的,因此此時這三者是需要填寫,并且記住的。其中對于最終生成的根證書來說這些填寫的信息最終體現(xiàn)在證書的詳細(xì)信息中:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

在證書詳細(xì)信息中、各參數(shù)含義如下:

C-----國家(Country Name)

S----省份(State or Province Name)

L----城市(Locality Name)

O----公司(Organization Name)

OU----部門(Organizational Unit Name)

CN----通用名(Common Name)

emailAddress----郵箱(Email Address)

通過 openssl req 命令生成證書請求文件 :

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

2.3生成根證書公鑰文件并進(jìn)行自簽名

要提供CA自己的證書,測試環(huán)境下CA只能自簽署,使用"openssl req -x509"、"openssl x509"和"openssl ca"都可以自簽署證書請求文件。 自簽署的證書就是自簽名證書,自簽名證書的體現(xiàn)就是:查看證書時,證書的頒發(fā)給與頒發(fā)者是一致的,如下圖所示:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

openssl ca命令用法:

openssl ca [-verbose] [-config filename] [-name section] [-startdate date] [-enddate date] [-days arg] [-md arg] [-policy arg] [-keyfile arg] [-key arg] [-passin arg] [-cert file]

[-selfsign] [-in file] [-out file] [-notext] [-outdir dir] [-infiles] [-ss_cert file] [-preserveDN] [-noemailDN] [-batch] [-extensions section] [-extfile section] [-subj arg] [-utf8]

【選項(xiàng)說明:】

-config filename :指定要使用的配置文件,指定后將忽略openssl.cnf中指定的關(guān)于ca的配置選項(xiàng)。

-name section??? :指定使用配置文件中的那個section。指定后將忽略openssl.cnf中的default_ca段。

-in filename???? :指定要被CA簽署的單個證書請求文件。根CA為其他證書簽署時使用。

-infiles???????? :該選項(xiàng)只能是最后一個選項(xiàng),該選項(xiàng)所接的所有參數(shù)都被認(rèn)為是要被簽署的證書請求文件,即一次性簽署多個請求文件時使用的選項(xiàng)。

-selfsign??????? :自簽署。指定-ss_cert選項(xiàng)時該選項(xiàng)被忽略。

-ss_cert filename:將被CA自簽署的單個證書文件。也就是說要重新簽署證書。

-out filename??? :證書的輸出文件,同時也會輸出到屏幕。不指定時默認(rèn)輸出到stdout。

-outdir dir_name :證書的輸出目錄。指定該選項(xiàng)時,將自動在此目錄下生成一個文件名包含16進(jìn)制serial值的".pem"證書文件。

-cert??????????? :CA自己的證書文件。

-keyfile filename:指定簽署證書請求時的私鑰文件,即CA自己的私鑰文件。

-key passwd_value:指定私鑰的加密密碼。

-passin arg????? :傳遞解密密碼

-verbose???????? :打印操作執(zhí)行時的詳細(xì)信息

-notext????????? :禁止以文本格式將證書輸出到"-out"指定的文件中

-days arg??????? :證書有效期限,從創(chuàng)建時刻開始算startdate,有效期結(jié)束點(diǎn)為enddate。

-startdate?????? :自定義證書的開始時間,和"-enddate"一起使用可以推算出證書有效期。

-enddate???????? :自定義證書的結(jié)束時間。

-md alg????????? :指定單向加密算法

-policy arg????? :該選項(xiàng)是配置文件中的section內(nèi)容,該選項(xiàng)指定了證書信息中的field部分是否需要強(qiáng)制提供還是要強(qiáng)制匹配,

???????????????? :或者可提供可不提供。詳細(xì)的見配置文件說明。

-extensions section:指定當(dāng)前創(chuàng)建的證書使用配置文件中的哪個section作為擴(kuò)展屬性。

-batch?????????? :簽署時使用批處理模式,即非交互模式。該模式下不會有兩次詢問(是否簽署、是否提交)。

-subj arg??????? :替換證書請求中的subject,格式/type0=value0/type1=value1/type2=...

openssl x509 命令:

該X509命令是一個多目的證書效用。它可用于顯示證書信息、將證書轉(zhuǎn)換為各種形式、像“迷你 CA”一樣簽署證書請求或編輯證書信任設(shè)置。

ca命令是用于簽署證書的,所以它所需要的文件除了配置文件外就是私鑰文件和證書請求文件,而簽名后生成的文件是證書文件,因此使用"-in"指定的對象是待簽署文件,"-infiles"則是指定多個待簽署文件,"-keyfile"是指定私鑰文件,"-out"是指定輸出的證書文件。

執(zhí)行命令:

openssl req -x509 -new -key /etc/pki/CA/private/cakey.pem -in careq.pem -out caroot.crt -days 3650

進(jìn)行自簽名:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

前面我們提到,在證書的配置文件中規(guī)定了證書的信息匹配問題,主要體現(xiàn)在這里,生成證書請求文件,當(dāng)輸入的信息不匹配時可能會報(bào)錯。

做完自簽名之后,我們就可以得到一個自簽名根證書了。

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

在完全生成了需要的根證書的私鑰文件、證書請求文件、根證書之后,我們就可以再次確認(rèn)一下配置文件?/etc/pki/tls/openssl.cnf里的私鑰文件路徑、根證書路徑是否是對的。

做完以上操作就已經(jīng)完成了根證書的設(shè)置,接下來只需要進(jìn)行需要使用的這個證書的私鑰生成、證書請求文件的生成公鑰證書的生成、生成需要的pfx格式證書文件、抽取需要的證書鏈p7b文件,最后通過結(jié)合使用pfx格式證書以及p7b證書鏈,只要能完整的驗(yàn)證證書的完整性,證書目的是可用于簽名的就算是達(dá)到目的了。

如果是要配置https就可以參考下面的

三、配置apache的https模式(此步驟對于我的目的而言,沒啥用,作為知識點(diǎn)放著)

只是作為知識內(nèi)容放這里,方便后續(xù)需要的時候參考。

首先要安裝apache的https模式,執(zhí)行:yum install -y httpd mod_ssl

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

這種方式安裝的文件目錄為/var/www/

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

為了驗(yàn)證后續(xù)我們是否配置好了https,我們需要有一個驗(yàn)證機(jī)制。簡單驗(yàn)證就是建立一個html文件,之后只要通過https://IP/能訪問到這個html的內(nèi)容就可以了。

echo "this is CA" >> /var/www/html/index.html? 注意命令中 的空格

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

此時我們可以重新生成用于配置https的相關(guān)證書文件:私鑰文件、證書請求文件、公鑰證書文件;也可以直接使用我們前面已經(jīng)產(chǎn)生的根證書文件。? 配置的關(guān)鍵點(diǎn)在于:將生成的私鑰文件、以及公鑰證書文件的路徑寫入 配置文件:/etc/httpd/conf.d/ssl.conf中。

為了避免證書文件被刪除,可以將生成的私鑰文件以及公鑰證書文件拷貝一下:

將前面生成的公鑰證書文件caroot.crt復(fù)制到/root/ssl目錄下:

pwd

?cp /etc/pki/CA/caroot.crt /root/ssl/
cp /etc/pki/CA/private/cakey.pem /root/ssl/


centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

vi /etc/httpd/conf.d/ssl.conf

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

再? 文件里找到 如下內(nèi)容:


# ? Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. ?If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. ?Note that a kill -HUP will prompt again. ?A new
# certificate can be generated using the genkey(1) command.
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /root/ssl/httpd.crt

# ? Server Private Key:
# ? If the key is not combined with the certificate, use this
# ? directive to point at the key file. ?Keep in mind that if
# ? you've both a RSA and a DSA private key you can configure
# ? both in parallel (to also allow the use of DSA ciphers, etc.)
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /root/ssl/httpd.key

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

SSLCertificateFile以及SSLCertificateKeyFile 分別指向剛剛復(fù)制過來的公鑰證書文件以及私鑰文件,修改之后如下圖所示:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

至此再確認(rèn)一下防火墻設(shè)置、確認(rèn)selinux的設(shè)定,再啟動httpd服務(wù)就可以進(jìn)行驗(yàn)證了。(當(dāng)然如果要深入應(yīng)用,我個人認(rèn)為還需要再深入研究一下這個?/etc/httpd/conf.d/ssl.conf
配置文件)

systemctl status firewalld

setenforce 0

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

實(shí)際使用過程中,需要考慮開啟防火墻,而不是簡單粗暴的關(guān)閉防火墻,所以如果防火墻開著,需要考慮將端口號放行,具體可參考我其他的博文或者網(wǎng)上相關(guān)的資料。

systemctl start httpd

systemctl status httpd

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

此時,通過瀏覽器訪問:https://IP/

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

這樣就表示成功了!

當(dāng)然如果配置不對,那么就會這樣,啟動不起來:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

四:生成簽名證書

4.1生成簽名證書私鑰文件

需要使用的證書生成私鑰文件的方法都是一樣的:

openssl genrsa -des3 -out testuser2key.pem 2048??-des3參數(shù)表示加密算法為des3 需要輸入即將生成這個私鑰文件testuser2key.pem的加密密碼,請牢記這個密碼,后續(xù)需要使用到。

現(xiàn)象如下 ,提示輸入加密密碼并確認(rèn)輸入,兩次輸入的信息必須是一致的。

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

4.2生成簽名證書的證書請求文件

生成需要使用的簽名證書私鑰對應(yīng)的證書請求文件:

openssl??req -new -key testuser2key.pem -out testuser2req.csr -days 365 -config /etc/pki/tls/openssl.cnf
?

-key 指定當(dāng)前使用的私鑰文件、-out 指定當(dāng)前要生成的證書請求文件的名字,如上述命令均為指向當(dāng)前目錄下的文件。當(dāng)使用的密鑰文件有加密時,就會提示輸入加密使用的密碼。之后會提示輸入這個證書請求文件的主要信息如:

Country Name (2 letter code) [CN]:CN

State or Province Name (full name) []:ChongQing

Locality Name (eg, city) [chongqing]:chongqing

Organization Name (eg, company) [MyOrganization]:MyOrganization

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:userweil

這些信息最終會在證書的詳細(xì)信息的使用者中展示,如下圖所示就是在生成證書請求文件時設(shè)置的Common Name為testuser1最終簽發(fā)的證書,Common Name就是指的頒發(fā)給

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

整體過程圖如下:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

4.3CA簽發(fā) 簽名證書的公鑰證書文件

生成簽名證書的公鑰證書文件,在生成根證書的時候采用的是自簽名,所以是使用的根證書自己的私鑰去做簽名,如下圖所示:centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

而到這里需要的簽名證書的公鑰證書文件的時候就需要注意:是用的簽名證書的證書請求文件、根證書的公鑰證書文件、以及根證書的私鑰文件來進(jìn)行簽發(fā):

?openssl ca -in testuser2req.csr -cert /etc/pki/CA/caroot.crt -keyfile /etc/pki/CA/private/cakey.pem -out testuser2.crt -config /etc/pki/tls/openssl.cnf
?

-in 指定當(dāng)前使用的證書請求文件;-cert 指定當(dāng)前簽發(fā)用的根證書的公鑰證書文件,-keyfile 指向當(dāng)前使用的根證書公鑰文件對應(yīng)的根證書私鑰文件;-out 指定即將生成的公鑰證書文件名,不指定目錄的情況下均為當(dāng)前目錄。

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

這樣就得到了crt后綴的公鑰證書文件了。

4.4生成簽名證書的pfx格式文件

?openssl pkcs12 -export -inkey testuser2key.pem -in testuser2.crt -out testuser2.pfx
-in 使用的是簽名通過證書請求文件由CA簽發(fā)的公鑰證書文件

-inkey 使用的是私鑰文件

-out 指定生成的pfx格式文件 不指定路徑為當(dāng)前目錄下

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

4.4.1檢測生成的證書

? ? ? ? 將生成的pfx文件testuser2.pfx、根證書文件caroot.crt通過windows客戶端安裝檢查最終結(jié)果如下:

1、安裝pfx文件:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

此時安裝的這個pfx屬于個人證書自動選擇存儲區(qū)域即可:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

如果安裝的是根證書,則要自行選擇,將其安裝到受信任的根證書頒發(fā)機(jī)構(gòu)中

查看證書:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

生成證書請求文件輸入的Common Name信息就是頒發(fā)給顯示的,詳細(xì)信息里的使用者信息就是全部輸入的信息:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

當(dāng)對應(yīng)的根證書也安裝時就能進(jìn)行驗(yàn)證:

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

安裝的根證書存儲位置:受信任的根證書頒發(fā)機(jī)構(gòu)里,頒發(fā)給與頒發(fā)者信息完全一致,是一個自簽名的根證書。

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

證書密鑰用法含Digital Signaturecentos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

五、生成根證書的證書鏈p7b文件

鑒于我的任務(wù)還需要使用p7b文件去驗(yàn)證證書鏈,這里說的證書鏈必然是要包含到根證書信息的,因此使用的是根證書的相關(guān)文件進(jìn)行抽取證書鏈。可千萬別像我傻兮兮的抽的個人證書的,把自己坑的深。。。。

生成p7b命令語法:

openssl? crl2pkcs7? [-inform PEM|DER ] [-outform PEM|DER ] [-in filename ]

[-out filename ] [-certfile filename ] [-nocrl ]

選項(xiàng)說明:

-inform PEM|DER:輸入文件的格式。DER是DER編碼的CRL對象。PEM(默認(rèn)的格式)是base64編碼的CRL對象。

-outform PEM|DER:指定文件的輸出格式,跟-inform的意思一樣。

?-in filename:指定CRL文件,不設(shè)置此項(xiàng)則從標(biāo)準(zhǔn)輸入中獲取。

-out filename:指定輸出文件,不設(shè)置此項(xiàng)則輸入到標(biāo)準(zhǔn)輸出。

-certfile filename:指定證書文件,PEM格式的證書文件可以包含多個證書,此選項(xiàng)可以多次使用。

-nocrl:不處理crl。一般情況下,輸出文件中包含crl信息,設(shè)置此選項(xiàng)時,讀取時忽略CRL信息,生成的信息不保護(hù)CRL信息。

要導(dǎo)出的是根證書的證書鏈文件:

openssl crl2pkcs7 -certfile caroot.crt -outform DER -out caroot.p7b -nocrl

centos phpinfo顯示的openssl配置項(xiàng)為/etc/pki/tls/openssl.cnf,CA證書,自建證書服務(wù)器

至此需要的簽名證書 testuser2.pfx、根證書鏈caroot.p7b均已生成,經(jīng)過驗(yàn)證我的應(yīng)用中可用。

寫在最后:這個過程說簡單也挺難的,很多資料都是屬于復(fù)制粘貼,有些時候還遇到各種報(bào)錯,需要更多的時間與精力去研究,并且要研究透徹的話就需要加入自己的思考,每一步為什么是這樣,怎么做才是對的,這種操作為什么不行.....各種各樣的,過程中差點(diǎn)就放棄了,因?yàn)檠芯苛撕芫镁褪遣荒苡?。還好最后告訴自己:再試一下,然后歷時一個星期+,終于搞定了?。?!.....有時候堅(jiān)持不一定有用,不一定是對的,但是想放棄的時候再堅(jiān)持一下還是有用的。文章來源地址http://www.zghlxwxcb.cn/news/detail-793531.html

到了這里,關(guān)于centos7 使用openssl 配置證書服務(wù)器并頒發(fā)證書(史上最詳細(xì)版本)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 配置swap交互內(nèi)存解決centos7服務(wù)器內(nèi)存不足問題

    配置swap交互內(nèi)存解決centos7服務(wù)器內(nèi)存不足問題

    在系統(tǒng)物理內(nèi)存不足時,將部分?jǐn)?shù)據(jù)暫時移動到硬盤上的交換分區(qū)(或稱為交換文件、頁交換文件),從而釋放出物理內(nèi)存空間供其他程序使用。當(dāng)需要訪問被移動到硬盤上的數(shù)據(jù)時,操作系統(tǒng)會將其重新加載到物理內(nèi)存中。這個過程被稱為“頁面置換”。 (1)例如,要在

    2024年03月27日
    瀏覽(29)
  • centos7系統(tǒng)keepalived安裝配置(服務(wù)器主備、負(fù)載均衡)

    centos7系統(tǒng)keepalived安裝配置(服務(wù)器主備、負(fù)載均衡)

    https://gitcode.net/zengliguang/nginx_keepalived.git 主備服務(wù)器上都需要安裝 主服務(wù)器腳本 備服務(wù)器腳本 虛擬機(jī)ip:192.168.11.56 主服務(wù)器:192.168.11.53 備服務(wù)器:192.168.11.54 keepalived安裝之后,在 etc 里面生成目錄 keepalived,有文件 keepalived.conf /etc/keepalived ?需要修改的內(nèi)容如下 hostname 需要

    2024年04月23日
    瀏覽(37)
  • Centos7搭建DNS(bind)服務(wù)器,配置域名泛解析記錄

    Centos7搭建DNS(bind)服務(wù)器,配置域名泛解析記錄

    前言就是沒錢買域名,學(xué)習(xí)成本較大 (窮批哭死) ,再加上windows個人版的上的hosts文件不支持域名泛解析和多租戶的域名解析,windows server環(huán)境又需要秘鑰提供不支持長期學(xué)習(xí),所以出一篇文章記錄一下。 客戶機(jī):windows個人環(huán)境即可 服務(wù)器:兩臺nginx服務(wù)器(centos7)、一臺

    2024年02月04日
    瀏覽(33)
  • 在Linux上使用openssl生成CA認(rèn)證文件并為服務(wù)器和客戶端頒發(fā)CA簽名證書

    在Linux上使用openssl生成CA認(rèn)證文件并為服務(wù)器和客戶端頒發(fā)CA簽名證書

    本文基于Linux上CentOS 7版本配合openssl與mod_ssl(需要使用yum下載)進(jìn)行配置演示 目錄 一.生成認(rèn)證主要流程 1.虛擬出一個CA認(rèn)證機(jī)構(gòu),為其生成公私鑰以及自簽證書 2.生成服務(wù)器方私鑰,發(fā)送包含服務(wù)器方公私鑰的申請文件給CA機(jī)構(gòu)請求簽發(fā)證書 3.生成客戶端方私鑰,發(fā)送包含服務(wù)

    2024年02月16日
    瀏覽(23)
  • Centos7 -DHCP、WEB、DNS以及郵件服務(wù)器配置-最終基礎(chǔ)篇

    Centos7 -DHCP、WEB、DNS以及郵件服務(wù)器配置-最終基礎(chǔ)篇

    一、使用虛擬機(jī)建立一個公司局域網(wǎng),局域網(wǎng)內(nèi)包括DHCP服務(wù)器、web服務(wù)器、DNS服務(wù)器以及郵件服務(wù)器。局域網(wǎng)網(wǎng)段為192.168.學(xué)號后三位.0/24,局域網(wǎng)所在域的域名為姓名拼音.com 例如:張三同學(xué)學(xué)號是188,則網(wǎng)段為192.168.188.0/24,域名為zs.com或zhangsan.com。 二、實(shí)現(xiàn)新終端入網(wǎng)零

    2024年02月16日
    瀏覽(40)
  • 使用U盤給服務(wù)器安裝centos7

    使用U盤給服務(wù)器安裝centos7

    1、下載UltraISO制作工具,U盤需要是空U盤 ? ? ? https://cn.ultraiso.net/ 2、打開UltraISO軟件,選擇 “文件” - “打開” 選擇linux系統(tǒng)鏡像(iso文件)并 “打開”。 3.插入U(xiǎn)盤,選擇 “啟動” - “寫入硬盤鏡像”,硬盤驅(qū)動器選擇做為系統(tǒng)盤的U盤,其他選項(xiàng)不需要改動。 4、點(diǎn)擊 ”

    2024年02月08日
    瀏覽(46)
  • 運(yùn)維系列(僅供參考):Centos7安裝和配置VNC服務(wù)器 - Xfce篇

    運(yùn)維系列(僅供參考):Centos7安裝和配置VNC服務(wù)器 - Xfce篇

    如果你圖形界面使用GNOME,看這里:Centos7安裝和配置VNC服務(wù)器 - GNOME篇 VNC ( Virtual Network Computing ),為一種使用 RFB 協(xié)議的屏幕畫面分享及遠(yuǎn)程操作軟件。此軟件借由網(wǎng)絡(luò),可發(fā)送鍵盤與鼠標(biāo)的動作及即時的屏幕畫面。 VNC 與操作系統(tǒng)無關(guān),因此可跨平臺使用,例如可用 Win

    2024年04月23日
    瀏覽(53)
  • Linux(CentOS7.9)MongoDB的安裝配置教程3個服務(wù)器+增量備份(帶腳本)

    首先,作為前端的開發(fā)人員,使用 MongoDB 數(shù)據(jù)庫 是非常常見的,接下來是在 Linux 系統(tǒng)下安裝和配置 MongoDB 的過程。只要按照以下步驟操作,相信你一定可以順利完成安裝。 Ⅰ、安裝前的簡介: 1、什么是 MongoDB 數(shù)據(jù)庫? MongoDB 是用 C++ 語言編寫的,是一個基于分布式文件存儲

    2024年04月08日
    瀏覽(17)
  • 【全】OpenSSL創(chuàng)建生成CA證書、服務(wù)器、客戶端證書及密鑰說明

    【全】OpenSSL創(chuàng)建生成CA證書、服務(wù)器、客戶端證書及密鑰說明

    本文章對應(yīng)的文檔: 使用OpenSSL創(chuàng)建生成CA證書服務(wù)器客戶端證書及密鑰資源-CSDN文庫 https://download.csdn.net/download/weixin_41885845/88746920 服務(wù)器需要CA證書、server證書、server私鑰,客戶端需要CA證。 服務(wù)器需要CA證書、server證書、server私鑰,客戶端需要CA證書,client證書、client私鑰。

    2024年01月19日
    瀏覽(45)
  • CentOS7自簽SSL證書并配置nginx

    CentOS7自簽SSL證書并配置nginx

    一、生成SSL證書 1、安裝依賴包 ? ? ? yum install -y openssl openssl-devel 2、生成私鑰,會讓你輸入一個 4~2048 位的密碼,你需要暫時記住這個密碼 ? ? ? openssl genrsa -des3 -out server.key 2048 輸入兩遍相同的密碼 3、生成CSR(Certificate Signing Request 證書簽名請求 ) 輸入以下命令: ? ? ? op

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包