自签名CA认证
自簽名CA認證
用openssl命令生成自己的根證書,讓用戶安裝信任它,之后所有用這個根證書簽名的證書,就可以被信任。
生成根證書
mkdir /root/ca
cd /root/ca
mkdir certs crl newcerts private
chmod 700 private
touch index.txt
echo 1000 > serial
touch openssl.cnf
先創(chuàng)建/root/ca文件夾,所有CA的操作都會在這個文件夾執(zhí)行。
/root/ca:CA文件夾
/root/ca/certs:新簽署證書和根證書存放的位置
/root/ca/crl:證書請求文件存放位置
/root/ca/newcerts:新簽署證書存放的位置,是/root/ca/certs的備份
/root/ca/private:ca.key.pem(私鑰)存放位置,千萬別丟失
/root/ca/index.txt:證書簽名的紀錄
/root/ca/serial:下一次證書簽名的序列號,保存到index.txt
/root/ca/openssl.cnf 配置文件的內(nèi)容:初始內(nèi)容
配置文件中:
policy = policy_strict 使用 policy_strict 為根CA簽名,因為跟CA僅用于創(chuàng)建中間CA。
創(chuàng)建根密鑰
# cd /root/ca生成一個RSA密鑰,為4096位長度,并將該密鑰用aes256對稱加密,位置在private/ca.key.pem,并輸入加密密鑰:xxxx。# openssl genrsa -aes256 -out private/ca.key.pem 4096 輸入兩次密碼xxxx。# chmod 400 private/ca.key.pem創(chuàng)建根證書
使用根密鑰(ca.key.pem)創(chuàng)建根證書(ca.cert.pem)。給予根證書有效期很長,例如20年。
# cd /root/ca
使用該req工具,都必須指定該-config選項使用的配置文件,否則OpenSSL將默認為 /etc/pki/tls/openssl.cnf。存放位置certs/ca.cert.pem。
-days 7300:有效期20年
# openssl req -config openssl.cnf
-key private/ca.key.pem
-new -x509 -days 7500 -sha256 -extensions v3_ca
-out certs/ca.cert.pem
生成服務端證書
生成服務端key(server.key)和證書請求(server.csr)
假設網(wǎng)站的域名或ip地址是127.0.0.1,那么在ca同級目錄下創(chuàng)建127.0.0.1文件夾,生成服務端證書操作都在這個目錄下進行。
mkdir /root/127.0.0.1
cd /root/127.0.0.1
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
會出現(xiàn)提示,盡量全部都填寫,防止以后瀏覽器對證書驗證變得嚴格,又要重新簽名。關鍵數(shù)據(jù)重復填寫就可以了。
Country Name輸入:CN
State or Province Name輸入:BeiJing
Locality Name(eg, city)輸入:BeiJing
Organization Name (eg, company)輸入:Flow CA
Organizational Unit Name (eg, section)輸入:Flow
Common Name輸入域名或ip:127.0.0.1
Email Address:flow@163.com
extra信息
A challenge password輸入:yyyy
An optional company name []:Flow
生成證書
- 前期準備
拷貝server.csr到ca/crl并改名為127.0.0.1.csr.pemcp server.csr …/ca/crl/127.0.0.1.csr.pem
修改下/root/ca/openssl.cnf
policy = policy_strict 為根CA簽名
改為
policy = policy_loose 為中間CA簽名
將下方IP或DNS更新為要簽名的:
[alt_names]
IP.1 = 127.0.0.1
IP.2 = 192.168.1.1
DNS.1 = flow.io
DNS.2 = ioptimi.flow.io
- 生成證書:
-days 375:有效期375天,默認值也是375天,in輸入文件,out存放地址cd /root/ca
openssl ca -config openssl.cnf \
-extensions server_cert -days 375 -notext -md sha256 \ -in crl/127.0.0.1.csr.pem \ -out certs/127.0.0.1.cert.pem
驗證服務端證書:
openssl x509 -noout -text
-in certs/127.0.0.1.cert.pem
Issuer: C = CN, ST = BeiJing, L = BeiJing, O = Flow CA, OU = flow, CN = flow, emailAddress = webmaster@flow.io
Validity
Not Before: Sep 2 08:05:44 2020 GMT
Not After : Sep 12 08:05:44 2021 GMT
Subject: C = CN, ST = BeiJing, L = BeiJing, O = Flow CA, OU = Flow, CN = flow, emailAddress = flow@163.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
將127.0.0.1.cert.pem拷貝到/root/127.0.0.1目錄下,并改名為server.crt
# cp certs/127.0.0.1.cert.pem …/127.0.0.1/server.crt
總結
- 上一篇: 400元!EVGA发布四8针-16针转接
- 下一篇: 朴素贝叶斯算法注意事项(有待完善)