日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Openssl搭建私有CA认证

發布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Openssl搭建私有CA认证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述


CA英文全稱Certification Authority,即數字證書認機構。從廣義上來說,CA是負責發放和管理數字證書的權威機構,并作為用戶數字認證中受信任的第三方,承擔公鑰體系(PKI)中公鑰的合法性檢驗的責任,在互聯網上,實現用戶與用戶、用戶與企業之間的數字身份認證。

本文通過使用openssl進行搭建私有CA認證體系,從而簡單地了解CA的認證過程。搭建私有CA,可以實現企業內部認證加密。


環境部署


本文環境基于 CentOS 6.8


步驟流程



具體操作


1. CA的配置文件

首先我們可以查看 /etc/pki/tls/openssl.cnf 的文件,找到以下內容了解CA的配置信息

####################################################### [?ca?] default_ca????=?CA_default????????#?The?default?ca?section ####################################################### [?CA_default?] dir????????=?/etc/pki/CA????????#?CA的工作目錄 certs????????=?$dir/certs????????#?證書存放位置 crl_dir????????=?$dir/crl????????#?吊銷列表 database????=?$dir/index.txt????#?索引文件數據庫,本文件自動生成 #unique_subject????=?no????????????#?Set?to?'no'?to?allow?creation?of#?several?ctificates?with?same?subject. new_certs_dir????=?$dir/newcerts????????#?默認新簽署證書存放目錄. certificate????=?$dir/cacert.pem?????#?CA自己的證書 serial????????=?$dir/serial?????????#?當前發出去的證書的序列號 crlnumber????=?$dir/crlnumber????#?吊銷的證書序列號#?must?be?commented?out?to?leave?a?V1?CRL crl????????=?$dir/crl.pem?????????#?當前正在使用的CRL?(證書列表文件) private_key????=?$dir/private/cakey.pem#?CA自己的私鑰(建議限制權限600?) RANDFILE????=?$dir/private/.rand????#?隨機數種子 x509_extensions????=?usr_cert????????#?用戶擴展

2. 客戶端配置

2.1. 在客戶端生成密鑰,建議保存至應用此證書的服務的配置文件目錄下:

(演示假設證書應用于 httpd 服務,按建議,我們到 httpd 的配置文件目錄下創建文件)

[root@IP160-C6-httpd?~]#?>>mkdir?/etc/httpd/ssl [root@IP160-C6-httpd?~]#?>>cd?/etc/httpd/ssl [root@IP160-C6-httpd?~]#?>>(?umask?077?;?openssl?genrsa?-out?httpd.key?1024?)#?建議:子shell中更改umask,新建文件權限即為600,子shell的umask不影響全局


2.2. 生成證書簽署請求:

Tips: CSR是Certificate Signing Request的英文縮寫,即證書請求文件,也就是證書申請者在申請數字證書時由CSP(加密服務提供者)在生成私鑰的同時也生成證書請求文件,證書申請 者只要把CSR文件提交給證書頒發機構后,證書頒發機構使用其根證書私鑰簽名就生成了證書公鑰文件,也就是頒發給用戶的證書。

來自<http://baike.baidu.com/link?url=TD6KI4WvcgOHWfxuocHFvD54VHQIO5aAxn4B8k3cUg2a_RMmoK4CcktqsmdhRMVLj7cv4pXnjA5p8NdgBEsoyq>

?生成

[root@IP160-C6-httpd?ssl]#?>>openssl?req?-new?-key?httpd.key?-out?httpd.csr#通過加載httpd.key生成一個新請求,保存為httpd.csr

?創建過程中需要進行交互式填寫信息:()

1). 國家:CN 兩位國家代碼(可以在/etc/pki/tls/openssl.cnf設置默認值)

2). 省份:beijing

3).?? 市: beijing

4). 公司:Client.Co

5). 部門:RD

6). 名字:www.client.com???? ?#非常重要,

7). 聯系:test@client.com????#測試使用

8). 密碼:#將申請文件加密

?

2.3. 將httpd.csr發給CA服務器

[root@IP160-C6-httpd?ssl]#?>>scp?httpd.csr?root@10.10.20.200:/root/pem#測試環境中使用scp傳輸文件到CA服務器


?

3. 服務器配置


3.1.? 生成自己的密鑰對

CA服務器的配置目錄初始環境

我們進入 /etc/pki/CA/ 目錄生成私鑰:(留意當前目錄,與相對路徑)

[root@IP200-C6-CA?~]#?>>cd?/etc/pki/CA/ [root@IP200-C6-CA?CA]#?>>tree?-C?. [root@IP200-C6-CA?CA]#?>>(?umask?077?;?openssl?genrsa?-out?private/cakey.pem?2048?)

?

?如果想查看公鑰:(非必要步驟)

[root@IP200-C6-CA?CA]#?>>openssl?rsa?-in?private/cakey.pem?-pubout?-text?-noout

?

3.2. 生成自簽證書

[root@IP200-C6-CA?CA]#?>>openssl?req?-new?-x509?-key?private/cakey.pem?-out?cacert.pem?-days?3655#?-new??創建一個認證申請;#?-x509?生成一份?X.509?證書,只有自簽署時候才需要此選項,簡化(申請-簽署)過程;#?-key????指明私鑰文件;#?-out????輸出證書文件;#?-days??簽署證書有效期。

?

3.3. 創建所需文件,指定證書編號初始值

完成 3.2. 后,此時配置目錄下的狀態:

我們還需要新建部分初始文件,以保證CA服務正常運行

[root@IP200-C6-CA?CA]#?>>touch?index.txt?serial?crlnumber [root@IP200-C6-CA?CA]#?>>echo?01?>?serial#設置序號從01開始

到此,我們已經完成了搭建根CA服務器的過程。


3.4. 簽署client的證書

CA服務器簽署客戶端證書的命令很簡單:

[root@IP200-C6-CA?CA]#?>>openssl?ca??-in?~/pem/httpd.csr?-out?~/pem/httpd.crt

此時我們運行會報錯:↓↓↓↓↓↓↓

[root@IP200-C6-CA?CA]#?>>ll?~/pem/httpd.csr? -rw-r--r--.?1?root?root?761?Sep?21?17:49?/root/pem/httpd.csr [root@IP200-C6-CA?CA]#?>>openssl?ca??-in?~/pem/httpd.csr?-out?~/pem/httpd.crt Using?configuration?from?/etc/pki/tls/openssl.cnf Check?that?the?request?matches?the?signature Signature?ok The?stateOrProvinceName?field?needed?to?be?the?same?in?the CA?certificate?(shanghai)?and?the?request?(beijing)


我們在查看 /etc/pki/tls/openssl.cnf 的文件,發現這一段內容:

原因是CA配置默認啟用的是 policy_match ,限制客戶端注冊信息部分需要匹配CA服務器。

#?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 #?For?the?'anything'?policy #?At?this?point?in?time,?you?must?list?all?acceptable?'object' #?types. [?policy_anything?] countryName????????=?optional stateOrProvinceName????=?optional localityName????????=?optional organizationName????=?optional organizationalUnitName????=?optional commonName????????=?supplied emailAddress????????=?optional ####################################################################

所以我們只需修改為 policy_anything:

再次運行簽署證書命令:

簽署過程需要交互回答兩個問題

Sign?the?certificate??[y/n]:y???#簽署確認 1?out?of?1?certificate?requests?certified,?commit??[y/n]y???#寫入證書數據庫

我們看到證書已經在CA服務器上完成簽署,數據庫也記錄在案了。

注:CA服務器吊銷證書:(證書名)

? openssl ca -revoke /PATH/TO/SOMEFILE.crt (證書名)


3.5. 回傳已簽署的證書給客戶端

[root@IP200-C6-CA CA]# >>scp ~/pem/httpd.crt root@10.10.20.160:/etc/httpd/ssl

?


至此,我們完成了整個CA搭建,客戶端證書認證的過程。

轉載于:https://blog.51cto.com/zhaoqifly/1855073

總結

以上是生活随笔為你收集整理的Openssl搭建私有CA认证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。