如何通過(guò)OpenSSL生成自簽名證書(shū)
我們可以使用openssl生成一對(duì)密鑰和證書(shū)。通常,證書(shū)文件(.crt)包含公鑰和證書(shū)信息,而.key文件是私鑰。
我們可以使用以下步驟:
- 生成私鑰(.key文件)
- 使用私鑰生成證書(shū)簽名請(qǐng)求(CSR)
- 使用私鑰和CSR生成自簽名證書(shū)(.crt文件)
注意:
- 這里生成的是自簽名證書(shū),適用于測(cè)試或內(nèi)部使用。
- 對(duì)于生產(chǎn)環(huán)境,通常需要向證書(shū)頒發(fā)機(jī)構(gòu)(CA)申請(qǐng)簽名。
方法一:生成自簽名證書(shū)(一步完成)
# 生成私鑰和自簽名證書(shū)(有效期365天) openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes # 交互式輸入信息,或使用以下命令自動(dòng)填寫(xiě): openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes \ -subj "/C=CN/ST=Beijing/L=Beijing/O=YourOrg/OU=YourDept/CN=yourdomain.com"
方法二:分步生成(更靈活)
# 1. 生成私鑰 openssl genrsa -out server.key 2048 # 2. 生成證書(shū)簽名請(qǐng)求(CSR) openssl req -new -key server.key -out server.csr \ -subj "/C=CN/ST=Beijing/L=Beijing/O=YourOrg/OU=YourDept/CN=yourdomain.com" # 3. 生成自簽名證書(shū) openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
方法三:使用配置文件生成
創(chuàng)建配置文件 cert.conf:
[req] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn x509_extensions = v3_req [dn] C = CN ST = Beijing L = Beijing O = YourOrg OU = YourDept CN = yourdomain.com [v3_req] keyUsage = keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = yourdomain.com DNS.2 = *.yourdomain.com IP.1 = 192.168.1.100
執(zhí)行生成命令:
openssl req -new -x509 -days 365 -nodes \ -config cert.conf \ -newkey rsa:2048 \ -keyout server.key \ -out server.crt
常用參數(shù)說(shuō)明
-newkey rsa:2048:生成 2048 位 RSA 密鑰-keyout:指定私鑰輸出文件-out:指定證書(shū)輸出文件-days:證書(shū)有效期(天)-nodes:不加密私鑰(無(wú)密碼)-subj:自動(dòng)填寫(xiě)證書(shū)信息-x509:生成自簽名證書(shū)
驗(yàn)證生成的證書(shū)
# 查看證書(shū)信息 openssl x509 -in server.crt -text -noout # 查看私鑰信息 openssl rsa -in server.key -check -noout # 驗(yàn)證密鑰和證書(shū)是否匹配 openssl x509 -noout -modulus -in server.crt | openssl md5 openssl rsa -noout -modulus -in server.key | openssl md5 # 兩個(gè)MD5值應(yīng)該相同
安全提示
- 保護(hù)私鑰:私鑰文件 (.key) 應(yīng)嚴(yán)格保密
- 密碼保護(hù)(可選):移除
-nodes參數(shù)可設(shè)置私鑰密碼 - 生產(chǎn)環(huán)境:自簽名證書(shū)僅用于測(cè)試,生產(chǎn)環(huán)境應(yīng)使用 CA 頒發(fā)的證書(shū)
- 密鑰長(zhǎng)度:推薦使用 2048 位或以上
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu 18.04 Server 設(shè)置靜態(tài)IP 的方法
Netplan是Ubuntu 17.10中引入的一種新的命令行網(wǎng)絡(luò)配置實(shí)用程序,用于在Ubuntu系統(tǒng)中輕松管理和配置網(wǎng)絡(luò)設(shè)置。這篇文章主要介紹了Ubuntu 18.04 Server 設(shè)置靜態(tài)IP 的方法,需要的朋友可以參考下2018-11-11
Linux Centos 下使用yum 命令安裝mysql實(shí)現(xiàn)步驟
這篇文章主要介紹了Linux Centos 下使用yum 命令安裝mysql實(shí)現(xiàn)步驟的相關(guān)資料,需要的朋友可以參考下2017-03-03
linux系統(tǒng)中rsync+inotify實(shí)現(xiàn)服務(wù)器之間文件實(shí)時(shí)同步
這篇文章主要介紹了rsync+inotify實(shí)現(xiàn)服務(wù)器之間文件實(shí)時(shí)同步,需要的朋友可以參考下2014-11-11
淺談Linux下修改/設(shè)置環(huán)境變量JAVA_HOME的方法
這篇文章主要介紹了淺談Linux下修改/設(shè)置環(huán)境變量JAVA_HOME的方法,環(huán)境變量一般是指在操作系統(tǒng)中用來(lái)指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù)。環(huán)境變量是在操作系統(tǒng)中一個(gè)具有特定名字的對(duì)象,它包含了一個(gè)或者多個(gè)應(yīng)用程序所將使用到的信息。感興趣的可以了解一下2020-07-07
linux輸入yum后提示: -bash: /usr/bin/yum: No such file or director
在本篇文章里小編給大家整理的是關(guān)于linux輸入yum后提示: -bash: /usr/bin/yum: No such file or directory的解決方法,有需要的朋友們參考下。2019-11-11
IO多路復(fù)用之select全面總結(jié)(必看篇)
下面小編就為大家?guī)?lái)一篇IO多路復(fù)用之select全面總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的?,F(xiàn)在就分享給大家。也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
VMware虛擬機(jī)安裝Linux系統(tǒng)圖文教程
這篇文章主要為大家詳細(xì)介紹了VMware虛擬機(jī)安裝Linux系統(tǒng)教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10

