使用openssl模擬CA和CA證書的簽發
當使用ssl/tls進行加密通訊時,必須要有數字證書。若通訊只限制在區域網內,可以不向第三方機構申請簽發證書,可以通過openssl模擬CA(Certificate Authority),並通過該CA簽發證書。下文講述在Centos7.3上使用openssl工具簽發證書的具體步驟。
1 生成模擬CA
1.1 修改配置檔案/etc/pki/tls/openssl.cnf
開啟openssl的配置檔案/etc/pki/tls/openssl.cnf,修改CA機構的預設資訊,具體修改內容如下
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = CN
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = JangSu
localityName = Locality Name (eg, city)
localityName_default = NanJing
0.organizationName = Organization Name (eg, company)
0.organizationName_default = ZTE
# we can do this but it is not needed normally :-)
#1.organizationName = Second Organization Name (eg, company)
#1.organizationName_default = World Wide Web Pty Ltd
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = Tech
commonName = Common Name (eg, your name or your server\'s hostname)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 64
配置項說明:
- countryName_default 預設的國家名稱簡寫,這裡配置為CN;
- stateOrProvinceName_default,預設的省份名,這裡配置為JangS;
- localityName_default,預設的城市名稱,這裡配置為NanJing;
- 0.organizationName_default,預設的組織名稱,這裡配置為ZTE;
- organizationalUnitName_default,預設的部門名稱,這裡配置為Tech;
1.2 生成CA自簽證書
生成CA的私鑰
(umask 077; openssl genrsa -out private/cakey.pem 2048)
[root@localhost CA]# pwd
/etc/pki/CA
[root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
.......................................................................................................+++
..........+++
e is 65537 (0x10001)
生成自簽證書
openssl req -new -x509 -key private/cakey.pem -out cacert.pem
[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out 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.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [JangSu]:
Locality Name (eg, city) [NanJing]:
Organization Name (eg, company) [ZTE]:
Organizational Unit Name (eg, section) [Tech]:
Common Name (eg, your name or your server's hostname) []:ca.xiaojie.com
Email Address []:[email protected]163.com
[[email protected] CA]# ls private
cacert.pem cakey.pem
- cakey.pem為CA的私鑰;
- cacert.pem為CA的自簽證書;
檢視簽發證書中的內容
openssl x509 -text -in cacert.pem
[root@localhost CA]# openssl x509 -text -in cacert.pem
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 13441978108521887108 (0xba8b7fdefd063584)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=CN, ST=JS, L=NanJing, O=ZTE, OU=Tech, CN=ca.xiaojie.com/emailAddress=caxiaojie@163.com
Validity
Not Before: Jun 2 03:30:22 2018 GMT
Not After : Jun 2 03:30:22 2019 GMT
Subject: C=CN, ST=JS, L=NanJing, O=Ztesoft, OU=Tech, CN=ca.xiaojie.com/emailAddress=caxiaojie@163.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:d2:ce:94:8e:26:52:bd:6e:7d:54:31:02:20:57:
01:81:1b:fc:24:3b:b1:e8:f1:4c:5d:e2:49:d8:5f:
5c:5e:02:89:76:29:f5:8d:33:17:98:06:80:06:ee:
37:dd:87:47:0d:f1:56:f0:cb:5e:5a:30:dc:31:46:
5a:cb:74:4c:76:8c:58:0b:bd:85:ff:15:16:67:64:
99:dd:53:3b:d0:6b:23:e3:35:3d:56:4a:ea:5d:89:
ab:f3:dc:75:ee:b6:5e:71:c6:f9:f6:ae:53:72:ba:
41:b4:06:0d:4f:80:1c:83:ab:5b:68:4f:78:eb:aa:
c0:f2:af:c4:b5:ac:f2:e8:f5
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
3E:E1:CC:F3:0D:53:2C:E3:DC:42:16:1D:DF:7B:A6:64:0F:E7:85:0B
X509v3 Authority Key Identifier:
keyid:3E:E1:CC:F3:0D:53:2C:E3:DC:42:16:1D:DF:7B:A6:64:0F:E7:85:0B
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: sha256WithRSAEncryption
be:5a:44:22:98:bb:cc:8a:15:32:ef:7c:ef:cb:2d:0f:6e:95:
42:f4:1f:54:23:40:02:63:7e:52:e3:97:2d:e2:77:fb:20:3b:
b3:b4:9f:b5:d7:01:05:5f:c2:9d:a9:2d:e8:93:48:33:ed:4c:
8a:3c:e2:a0:f1:d3:9e:b0:37:af:4a:75:aa:4a:42:3c:4e:a6:
c7:07:dc:98:75:84:3a:fe:8a:65:ab:4b:39:29:02:57:5b:30:
eb:1f:26:13:cc:65:39:65:83:47:cc:e6:da:89:9d:61:3c:57:
65:66:1d:c6:06:cb:b5:da:ae:4c:22:d0:f0:4d:ed:4c:4e:f9:
ea:d8
建立公共目錄
[root@localhost CA]# mkdir certs crl newcerts private
[root@localhost CA]# touch index.txt
[root@localhost CA]# touch serial
[root@localhost CA]# echo 01 > serial
[root@localhost CA]# ls
certs crl index.txt newcerts private serial
- private,CA的私鑰;
- newcerts, 儲存CA新簽發的證書;
- crl , 被吊銷的證書列表;
- index.txt,儲存簽發的證書資訊;
- serial,儲存證書籤發的序列號;
2. 機構A請求CA簽發證書
生成機構A的私鑰
(umask 077; openssl genrsa -out httpd.key 1024)
生成證書籤發請求
openssl req -new -key httpd.key -out httpd.csr
[[email protected] ssl]# openssl req -new -key httpd.key -out httpd.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) [CN]:
State or Province Name (full name) [JangSu]:
Locality Name (eg, city) [NanJing]:
Organization Name (eg, company) [ZTE]:
Organizational Unit Name (eg, section) [Tech]:
Common Name (eg, your name or your server's hostname) []:www.xiaojie.com
Email Address []:[email protected]123.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[[email protected] ssl]# ls
httpd.csr httpd.key
將httpd.csr傳送給CA,CA根據httpd.csr簽發證書
openssl ca -in httpd.csr -out httpd.crt -days 365
- -in,指定證書籤發請求檔案;
- -out, 指定生成的證書檔案;
- -days, 指定證書的有效期;
[root@localhost ssl]# openssl ca -in httpd.csr -out httpd.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Jun 2 04:07:48 2018 GMT
Not After : Jun 2 04:07:48 2019 GMT
Subject:
countryName = CN
stateOrProvinceName = JangSu
organizationName = Ztesoft
organizationalUnitName = Tech
commonName = www.xiaojie.com
emailAddress = xiaojie@123.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
3F:8F:5F:80:F1:C4:77:0A:2E:4D:9C:75:16:FC:8B:6E:77:EF:6A:35
X509v3 Authority Key Identifier:
keyid:75:D5:93:C0:53:3F:B1:DE:90:E0:9A:CC:92:BE:EF:F0:38:F4:20:C8
Certificate is to be certified until Jun 2 04:07:48 2019 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
httpd.crt 就是簽發的證書,可以直接使用httpd.crt證書了。
3. 在httpd中使用證書
安裝mod_ssl模組
yum install mod_ssl
配置/etc/httpd/conf.d/ssl.conf
- 修改DocumentRoot ,DocumentRoot “/work/www/html”【網站的目錄】;
- 修改ServerName, ServerName www.YOUR_DOMAIN:443【域名+443埠】;
- 配置SSLCertificateFile ,即CA證書檔案httpd.crt,SSLCertificateFile /etc/ssl/certs/httpd.crt;
- 配置SSLCertificateKeyFile, 即私鑰檔案httpd.key, SSLCertificateKeyFile /etc/ssl/private/httpd.key;
- 配置 SSLCertificateChainFile,證書信任鏈,也就是根證書, 這裡配置的就是CA的證書。SSLCertificateChainFile /etc/ssl/certs/cacert.pem;
參考
相關推薦
使用openssl模擬CA和CA證書的簽發
當使用ssl/tls進行加密通訊時,必須要有數字證書。若通訊只限制在區域網內,可以不向第三方機構申請簽發證書,可以通過openssl模擬CA(Certificate Authority),並通過該CA簽發證書。下文講述在Centos7.3上使用openssl工具
創建CA 和申請證書
cacentos6中一. 創建私有CA 1 、創建所需要的文件touch /etc/pki/CA/index.txt 生成證書索引數據庫文件echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號2、 CA 自簽證書生成私鑰cd /etc/pki/CA/ (umask 06
Centos7建立CA和申請證書 轉自https://www.cnblogs.com/mingzhang/p/8949541.html
Centos7.3建立CA和申請證書 openssl 的配置檔案:/etc/pki/tls/openssl.cnf 重要引數配置路徑 dir = /etc/pki/CA &
Centos7創建CA和申請證書 轉自https://www.cnblogs.com/mingzhang/p/8949541.html
tro 簽名證書 文件名 相同 執行 檢驗 vat http The Centos7.3創建CA和申請證書 openssl 的配置文件:/etc/pki/tls/openssl.cnf 重要參數配置路徑 dir = /etc/pki/CA
Linux建立私有CA和頒發證書及管理
name 工具 index country 證書管理 text tex 簽名證書 簽名 建立私有CA和頒發證書及管理 1. 建立私有CA 使用openssl工具實現搭建一個私有CA,打開文件/etc/pki/tls/openssl.cnf ,文件裏的內容是openssl
用OpenSSL建立CA和簽發證書,轉換成java可以載入的jks
java的keytool工具本來就可以生成互動式認證的證書, 不過其他語言處理互動式認證的流程貌似和java的keytool的認證流程有些差別, 而openssl是比較通用的工具。大部分語言都會支援openssl生成的證書檔案。用openssl簽發的證書如何才能轉化為key
linux安全和加密篇(三)—openssl工具和CA證書
OpenSSL:開源專案 三個元件: openssl: 多用途的命令列工具,包openssl libcrypto: 加密演算法庫,包openssl-libs [[email protected] data]# openssl-libs libssl:加密模組
使用openssl生成自籤CA證書,並用其簽發其他證書
下面開始實踐: ROOT CA金鑰和證書 正常情況下,根CA一般只用來簽發下級的CA證書,不會直接簽發服務端和客戶端證書。 1.準備工作目錄 我這裡用的是mac環境,使用win或linux的朋友請自行調整。 建立一個資料夾用來存放所
基於 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來用,可以讓你建立證
Weblogic HTTPS SSL證書製作(自己使用openssl來製作CA證書和伺服器證書,自己充當CA的角色)
一、生成CA證書1、建立私鑰openssl genrsa -out /home/ca/ca-key.pem 10242、建立證書請求openssl req -new -out /home/ca/ca-req.csr -key /home/ca-key.pem3、自簽名證書1
CA證書籤署過程、openssl模擬生成證書檔案、使用者證書驗證過程
//單純使用公私鑰進行加解密,會存在公鑰被替換偽造的風險,無法判斷公鑰是否屬於服務提供商。 //所以,公鑰需要通過CA機構的認證。 //CA機構用自己的私鑰,對服務提供商的相關資訊及公鑰進行加密生成數字證書。 //在進行安全連線的時候,服務提供商將證書一同發給使用者。 //使用者收到證書後,從他的CA認證
Openssl應用實例:創建私有CA並申請證書
linux運維一:實驗環境CA:centos6 172.17.252.226客戶端:centos7 172.17.252.188二:閱讀CA相關配置文件CA配置文件路徑:/etc/pki/tls/openssl.cnf圖一圖二圖三三:證書申請及簽署步驟1、生成申請請求2、RA核驗3、CA簽署4、獲取證書具
CA和證書
linux1、概念PKI: Public Key Infrastructure簽證機構:CA(CertificateAuthority)註冊機構:RA證書吊銷列表:CRL證書存取庫:X.509:定義了證書的結構以及認證協議標準版本號 主體公鑰序列號 CRL分發點簽名算法
安全與加密-SSL交互與握手過程 創建CA和證書管理
ror 描述 sin code oss shadow pro back 自簽名證書 上一篇章中我們講了使用gpg和openssl加密公鑰進行安全數據通訊的場景。可是,網絡中總是有不懷好意的角色存在,別以為你以公鑰加密了就是安全的,有沒有想過,你得到的這個公鑰是不是真正要跟你
Centos7下的Openssl和CA
tap 需要 密文 rtb nmf 密碼 cux next sse 一、Openssl常用命令:# openssl ? # 查看openssl的命令及子命令 # man enc # 可以直接查看子命令幫助加密:# openssl enc -des3 -e -sa
私有CA和證書
傳輸 same ica ca簽署 .cn 數字證書 struct stat 派出所 證書類型 證書授權機構的證書 服務器 用戶證書 獲取證書兩種方法 使用證書授權機構: 生成簽名請求(csr ) 將csr發送給
利用openssl創建私有CA的步驟和過程
創建私有CAopenssl命令行 工具:命令包含眾多的子命令來實現各種安全加密功能 標準命令有: enc, dgst, ca, req, genrsa, rand, rsa, x509, passwd, ... 1.對稱加密命令:enc 提供對
Linux初級:openssl建立CA及頒發證書
openssl 對稱加密: 工具:openssl enc, gpg 演算法:3des, aes, blowfish, twofish 幫助:man enc 1、 加密:enc對稱演算法加密 -e加密 -des3演算法加密 -a base64編碼 -salt加鹽打亂順序 -in加
docker筆記6-使用tsl方式連線docker和CA證書的安裝使用
記錄使用tsl連線docker, CA證書的安裝使用 生成安裝證書 參照原文連結:https://segmentfault.com/a/1190000012510820 auto-tls-certs.sh Bash 指令碼程式碼 #!/bin/bash # # Crea