使用openssl自签证书

使用openssl自签证书

# 首先生成一个私钥
openssl genrsa -out server.key 2048

# 然后使用前面的私钥生成csr(证书签署请求)文件,该过程要求输入相关信息以方便CA机构审核
openssl req -new -key server.key -out server.csr

# 使用证书签署请求文件生成公钥(这一步需要CA机构那边来做的,但也可以自己做,
# 自己做就叫“自签名”,自签名的证书只能自己用,不能被浏览器等认为是合法的)。
openssl req -x509 -in server.csr -key server.key -days 3650 -out server.crt

# 把私钥和公钥放在一起,变成pem格式
cat server.key server.crt > server.pem

# 修改私钥和公钥的权限为0600(一般都是只允许所有者读/写,不允许所有组和其它人读/写)
chmod 0600 server.pem server.key
  • genrsa是generate rsa的缩写,表示生成一个使用rsa算法加密的私钥,长度为2048,-out用于指定生成的私钥文件名,.key结尾只是方便让我们人知道它是私钥,其实没有后缀,或随便乱写一个后缀都无所谓,因为它的本质是一个文本文件,可使用man openssl genrsa来查看帮助;
  • req是request,表示生成一个证书签署请求文件(CSR, Certificate Signing Request),证书签署请求是申请者发给证书颁发机构(ca, Certificate Authority)的信息文件,用于申请公开密钥证书(简称公钥),当然也可以直接生成证书,可使用man openssl req来查看帮助;
  • -new表示生成一个新的证书签署请求(CSR),-key(也可写作-signkey)用于指定要申请的公钥所对应的私钥,如果用-newkey表示不指定私钥而是顺便生成一个私钥,-out表示指定保存到哪个文件中;
  • -x509是一种证书格式,-in默认表示读取一个证书文件(应该是公钥),但由于它前面有req,就表示读取一个csr(证书签署请求)文件,-days用于指定证书有效的天数-out`表示指定保存到哪个文件中(.crt是certificate的缩写),;
  • .pem是Privacy Enhanced Mail的缩写,软件读取pem文件后,会自己区分里面的公钥和私钥,并使用对应的公钥或私钥;
  • server.pem就是证书,server.key是私钥,比如nginx的ssl_certificate就是填server.pem,ssl_certificate_key则填server.key。

其中生成csr(证书签署请求)文件过程要求输入的信息总共有9个

分别为:

  • 1、Country Name,必须用两位字母大写字母表示国家代码(如中国CN、美国US);
  • 2、State or Province Name,州或省名;
  • 3、Locality Name,地区名(如城市),这个一般填州或省下属的城市名;
  • 4、Organization Name,组织名(比如你的组织是一个公司,那就填你的公司名);
  • 5、Organization Unit Name,组织单位(比如集团下属公司名,或公司下属部门名,这个字段很容易造成误解,通过投票,已经在2022年09月正式被移除,见这里);
  • 6、Common Name,通用名(如服务器的域名,或者你本人的姓名);
  • 7、Email Address,电子邮箱;
  • 8、[额外字段]A challenge password,证书密码,一般不填;
  • 9、[额外字段]An optoinal company name,一个可选的公司名(有些公司有其它简称);

参考:
自签名证书和CA证书的区别和制作、使用
Creating a Secure Encrypted Channel with Socat

打赏

订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

使用openssl自签证书