自建CA認證和證書
一些概念:
PKI:Public Key Infrastructure
- 簽證機構:CA(Certificate Authority)
- 註冊機構:RA(Register Authority)
- 證書吊銷列表:CRL(Certificate Revoke Lists)
- 證書存取庫
X.509:定義了證書的結構和認證協議的標準。包括版本號、序列號、簽名演算法、頒發者、有效期限、主體名稱、主體公鑰、CRL分發點、擴充套件資訊、發行者簽名等
獲取證書的兩種方法:
- 使用證書授權機構
- 生成簽名請求(csr)
- 將csr傳送給CA
- 從CA處接收簽名
- 自簽名的證書
- 自已簽發自己的公鑰重點介紹一下自建CA頒發機構和自簽名。
自建CA頒發機構和自簽名
實驗用兩臺伺服器,一臺做ca頒發證書,一臺去請求籤名證書。
證書申請及簽署步驟:
- 生成申請請求
- CA核驗
- CA簽署
- 獲取證書
我們先看一下openssl的配置檔案:/etc/pki/tls/openssl.cnf
####################################################################
[ ca ]
default_ca = CA_default # The default ca section(預設的CA配置,是CA_default,下面第一個小節就是)
####################################################################
[ CA_default ]
dir = /etc/pki/CA # Where everything is kept (dir變數)
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.(資料庫索引檔案)
new_certs_dir = $dir/newcerts # default place for new certs.(新證書的預設位置)
certificate = $dir/cacert.pem # The CA certificate(CA機構證書)
serial = $dir/serial # The current serial number(當前序號,預設為空,可以指定從01開始)
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(CA機構的私鑰)
RANDFILE = $dir/private/.rand # private random number file(隨機數檔案)
x509_extensions = usr_cert # The extentions to add to the cert
# Comment out the following two lines for the "traditional"
# (and highly broken) format.
name_opt = ca_default # Subject Name options(被頒發者,訂閱者選項)
cert_opt = ca_default # Certificate field options(認證欄位引數)
# Extension copying option: use with caution.
# copy_extensions = copy
# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
# so this is commented out by default to leave a V1 CRL.
# crlnumber must also be commented out to leave a V1 CRL.
# crl_extensions = crl_ext
default_days = 365 # how long to certify for (預設的有效期天數是365)
default_crl_days= 30 # how long before next CRL
default_md = sha256 # use SHA-256 by default
preserve = no # keep passed DN ordering
# 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 # 國家名是否匹配,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
####################################################################
重點關注下面的幾個引數:
dir = /etc/pki/CA # Where everything is kept (dir變數)
certs = $dir/certs # Where the issued certs are kept(認證證書目錄)
database = $dir/index.txt # database index file.(資料庫索引檔案)
new_certs_dir = $dir/newcerts # default place for new certs.(新證書的預設位置)
certificate = $dir/cacert.pem # The CA certificate(CA機構證書)
serial = $dir/serial # The current serial number(當前序號,預設為空,可以指定從01開始)
private_key = $dir/private/cakey.pem# The private key(CA機構的私鑰)
1、建立所需要的檔案
touch /etc/pki/CA/index.txt
生成證書索引資料庫檔案
echo 01 > /etc/pki/CA/serial
指定第一個頒發證書的序列號,16進位制數,比如可以從1a開始,一般從01開始。
2、CA自簽證書
在作為CA的伺服器上操作:
- 生成私鑰
[[email protected] ~]#(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
Generating RSA private key, 4096 bit long modulus
.....++
..............................................++
生成自簽名證書
[[email protected] ~]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem 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. <hr /> Country Name (2 letter code) [XX]:CN (國名(2個字母程式碼)[XX]:CN) State or Province Name (full name) []:Beijing (州或省名稱(全稱)北京) Locality Name (eg, city) [Default City]:Beijing (地區名稱(如城市)[預設城市]:北京) Organization Name (eg, company) [Default Company Ltd]:shangdigongsi (組織名稱(如公司):上帝公司) Organizational Unit Name (eg, section) []:opt (組織單位名稱:opt) Common Name (eg, your name or your server's hostname) []:centos (通用名稱(例如,您的名字或您的伺服器的主機名)[]:centos) Email Address []:[email protected] (電子郵件地址[]:[email protected])
引數解析:
-new: 生成新證書籤署請求
-x509: 專用於CA生成自簽證書
-key: 生成請求時用到的私鑰檔案
-days n:證書的有效期限
-out /PATH/TO/SOMECERTFILE: 證書的儲存路徑3、頒發證書
在需要使用證書的主機生成證書請求。(比如給一臺作為部落格web服務的伺服器生成私鑰)
[[email protected] ~]#(umask 066; openssl genrsa -out /etc/pki/tls/private/blog.key 4096) Generating RSA private key, 4096 bit long modulus .....................................++ ......................................................................................................................++ e is 65537 (0x10001)
生成證書申請檔案
[[email protected] ~]#openssl req -new -key /etc/pki/tls/private/blog.key -days 3560 -out /etc/pki/tls/blog.csr
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) [XX]:CN (國名(2個字母程式碼)[XX]:CN)
State or Province Name (full name) []:Beijing(州或省名稱(全稱)北京)
Locality Name (eg, city) [Default City]:Bejing (地區名稱(如城市)[預設城市]:北京)
Organization Name (eg, company) [Default Company Ltd]:shangdigongsi(組織名稱(如公司):上帝公司)
Organizational Unit Name (eg, section) []:centos(組織單位名稱:opt)
Common Name (eg, your name or your server's hostname) []:opt (通用名稱(例如,您的名字或您的伺服器的主機名)[]:centos)
Email Address []:(電子郵件地址[]:[email protected])
Please enter the following 'extra' attributes (請輸入以下“額外”屬性)
to be sent with your certificate request(要傳送您的證書請求)
A challenge password []:(密碼[ ]:)
An optional company name []:(可選的公司名稱)
- 將證書請求檔案傳輸給CA
“`bash
[[email protected] ~]#scp /etc/pki/tls/blog.csr [email protected]:/tmp/
[email protected] password
blog.csr 100% 1773 1.7Mb/s
- CA簽署證書,並將證書頒發給請求者
<center><img src="http://zhangqifei.top/picture/ifeier/data/ca.jpg" width = "500" height = "200" alt="openssl" align=center /></center>
> 注意:預設國家,省,公司名稱三項必須和CA一致
- 把blog.crt證書回傳給申請者,申請者可以使用此證書。
> 證書可以放在網站裡,比如tomacat服務有專門存放證書的地方,還有可能需要轉化格式,此處使用方法暫略
### 4、吊銷證書
- 在客戶端獲取要吊銷的證書的serial
```bash
openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
<div class="se-preview-section-delimiter"></div>
- 在CA上,根據客戶提交的serial與subject資訊,對比檢驗是否與index.txt檔案中的資訊一致,吊銷證書:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
<div class="se-preview-section-delimiter"></div>
- 指定第一個吊銷證書的編號
echo 01 > /etc/pki/CA/crlnumber
<div class="se-preview-section-delimiter"></div>
注意:這裡只有在第一次更新證書吊銷列表前,才需要執行指定編號。
- 更新證書吊銷列表
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
<div class="se-preview-section-delimiter"></div>
- 檢視crl檔案:
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text
相關推薦
自建CA認證和證書
一些概念: PKI:Public Key Infrastructure 簽證機構:CA(Certificate Authority) 註冊機構:RA(Register Authority) 證書吊銷列表:CRL(Certificate Revoke L
CA認證和證書
ca認證獲取證書的兩種方法: 使用證書授權機構 生成簽名請求(csr) 將csr發送給CA 從CA處接收簽名 自簽名證書 自己簽發自己的公鑰自建CA頒發機構和自簽名實驗用兩臺機器,一臺做CA
OpenSSL 自建CA及簽發證書
利用 OpenSSL 建立 CA 及自行簽發證書。 1. 建立CA目錄結構 在CA的配置檔案中,有說明預設CA的目錄。 建立預設CA下的目錄及檔案如下圖(.old檔案和.attr檔案是簽發證書後自動生成的檔案)。 其中, newcert
自建CA與簽發證書
CA 簡介 在加密中,證書頒發機構或證書頒發機構(CA)是頒發數字證書的實體。數字證書通過證書的指定主題來證明公鑰的所有權。這允許其他人(依賴方)依賴簽名或關於與經認證的公鑰對應的私鑰的斷言。CA充當受信任的第三方 -由證書的主體(所有者)和依賴證書的一
openssl自建CA及生成證書
檢視openssl版本 openssl version 使用openssl加密和解密檔案 加密檔案 opnessl有一個子命令enc,他可以用來加密檔案,具體引數如下: -ciphername:指定加密演算法 -in fil
Https、OpenSSL自建CA證書及簽發證書、nginx單向認證、雙向認證及使用Java訪問
1.5 image echo create etc 保存 config openss ima 0.環境 安裝了nginx,安裝了openssl 1.配置和腳本 先創建一個demo目錄(位置自己選擇,我選擇建在nginx的目錄下): mkdir /etc/nginx/
基於 OpenSSL 自建 CA 和頒發 SSL 證書
原文地址 https://deepzz.com/post/based-on-openssl-privateCA-issuer-cert.html#toc_5自建 CA 頒發證書不僅可以用來鑑權,而且使你的通訊更加的安全(請保護好你的證書)。在實際的軟體開發中,越來越多的服務用到 HTTPS,證書的需求隨之增加
基於OpenSSL自建CA和頒發SSL證書
openssl是一個開源程式的套件、這個套件有三個部分組成:一是libcryto,這是一個具有通用功能的加密庫,裡面實現了眾多的加密庫;二是libssl,這個是實現ssl機制的,它是用於實現TLS/SSL的功能;三是openssl,是個多功能命令列工具,它可以實現加密解密,甚至還可以當CA來用,可以讓你建立證
(13) openssl ca(簽署和自建CA)
多選 bject 自建 stat ddr new eba 不重復 重新 用於簽署證書請求、生成吊銷列表CRL以及維護已頒發證書列表和這些證書狀態的數據庫。因為一般人無需管理crl,所以本文只介紹openssl ca關於證書管理方面的功能。 證書請求文件使用CA的私鑰簽署之後
自建 CA 中心並簽發 CA 證書
目錄 文章目錄 目錄 CA 認證原理淺析 基本概念 PKI CA 認證中心(證書籤發) X.509 標準 證書 證書的簽發過程 自建 CA 簽發證書並認證 HT
自建CA 頒發證書
原文地址: http://blog.csdn.net/erice_e/article/details/53486071 客戶端認證伺服器: 正規的做法是:到國際知名的證書頒發機構,如VeriSign申請一本伺服器證書,比如支付寶的首頁,點選小鎖的圖示,可以看到支付
信安實踐——自建CA證書搭建https伺服器
1.理論知識https簡介HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。超文字傳輸協
部署自建CA頒發證書實現https加密
isp pan ef6 span med _for logs strong 執行 理論忽略:百度上很多 需求:自建證書並實現域名的https加密 部署: 在linux機器上執行以下命令生成私鑰 mkdir -p /opt/ssl-cert cd /opt/ssl
自建CA證書搭建https伺服器
由於CA收費,所以可以自建CA,通過將CA匯入瀏覽器實現https的效果,曾經12306購票就需要自行匯入網站證書。 關於https 2015年阿里巴巴將旗下淘寶、天貓(包括移動客戶端)全站啟用HTTPS加密,並順利通過“雙十一”考驗,成為全球最大的電商平臺全站HTTPS改造案例。 全站HTTPS需要解決3大
自建帶有認證功能的Docker Harbor
域名 mas tab com 求和 port 簡單的 help github What is Harbor? Harbor is an open source cloud native registry that stores, signs, and scans co
使用OpenSSL自建CA + Nginx配置HTTPS
ble not cer per see 當前目錄 認證 ner web Ubuntu 16.04(ECS),OpenSSL 1.0.2g 1 Mar 2016,Nginx 1.10.3 (Ubuntu), 瀏覽器:Chrome 67,Firefox 61,Edge 40,
自建CA實驗
openssl 證書頒發 ... crt pki attr .com 詳細 gen 測試主機:172.20.112.128(centos6.9:c6) 172.20.112.162(CA,centos7:c7)[root@c7 ~]# vi /etc/pki/tls/o
參考大神教程完成阿里雲自建伺服器esp8266和mqtt客戶端成功對接
阿里雲自建伺服器esp8266和mqtt客戶端成功對接 阿里雲伺服器部分參考esp8266嵌入式大神資料:大神部落格 最近組建了一個小群,感興趣的可以加入一起玩:476840321 微控制器也是很簡單的,用的esp8266最小系統。 過程中間遇到了
雲合同線上電子簽章:怎麼做CA認證和線上電子印章?
CA,Certificate Authority,電子商務認證授權機構,也稱為電子商務認證中心,是負責發放和管理數字證書的權威機構,並作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。 CA中心為每個使用公開金鑰
Windows Server2008、IIS7啟用CA認證及證書製作完整過程
1新增活動目錄證書服務 1.1開啟伺服器管理器,右鍵點選角色,選擇“新增角色”,在“新增角色嚮導”視窗左側面板選擇“伺服器角色”,然後勾選“Active Directory證書服務”,如下圖: 1