免费的泛域名证书申请,以及证书格式转换

如题所述

第1个回答  2022-07-24

本博客针对的是泛域名证书申请(三个月)以及申请后的证书格式转换。申请的证书只有三个月有效期,到期可以续期。泛域名证书会包含一个主域名以及其所有的二级域名,或者某个二级域名对应的所有三级子域名,如:example.com 以及 .example.com或者xxx.example.com与 .xxx.example.com。
如果你只是想要一个单域名证书,可以选择华为或阿里提供的证书服务(1年)。以华为为例:在证书管理中–购买证书类型(DV Basic)–证书品牌(DigiCert) –证书类型(单域名证书) ;接着在证书列表里点击”申请证书”绑定你的域名,绑定过程中需要你添加一条TXT解析记录,用于域名所有权的验证。单域名的申请此处不做详细介绍。

找一台linux系统的主机,在上面执行:

该脚本需要访问github,由于国内的网络原因,可能需要执行多次才能成功,直到执行结果出现,如下图所示表示成功:

安装完后执行以下脚本申请证书:

执行后会拿到两条Domain&TXT value,将其添加到你的域名TXT解析中。

两条TXT解析添加完成后,将acme.sh脚本再次执行,这次在脚本后添加 --renew 参数:

申请完成的证书放置在~/.acme.sh/example.com/目录下:

申请完成后将证书配置到nginx服务:

在nginx.conf中配置启用ssl

在工作中经常会遇到的两类证书:jks与(pem/crt)。jks是JAVA KeyStore缩写,可以被java/tomcat等可识别的证书。而pem/crt则是apache、nginx、openssl可识别的证书。很多时候需要在两种格式之间转换。

需要用到epenssl以及java自带的keytool工具:

example.com.jks就是我们想要的能被java直接识别的证书啦~

将上面的段落另外为jks2crt.sh,并授予执行权限,chmod +x jks2crt.sh

./jks2crt.sh [证书路径] [证书自定义密码]
其他证书格式
PEM – Privacy Enhanced Mail,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码,Nginx和Apache偏向于使用。

DER – Distinguished Encoding Rules,打开看是二进制格式,不可读,Java和Windows偏向于使用

CRT – CRT应该是certificate的三个字母,其实还是证书的意思,常见于类UNIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,可读的(cat)。

CER – 还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码。