近期在进行远程漏洞扫描后发现,有存在服务器证书过期的情况,可以通过以下步骤进行问题的处理:
1、先根据对应出现漏洞的端口进行检查,看端口对应的服务是哪个服务:
netstat -tunlp|grep 端口号
2、通过命令,发现找到的服务发现是emq
3、处理emq证书过期问题:
先检查是否是其目录下的证书过期:
找到emq下的certs目录:
在目录下执行以下命令:
openssl x509 -
in
cacert.pem -noout -dates
openssl x509 -
in
cert.pem -noout -dates
openssl x509 -
in
key.pem -noout -dates
- 结果示例
notBefore=May 25 16:09:40 1999 GMT
notAfter=May 25 16:39:40 2019 GMT
之后开始正式的进行生成证书操作(为了避免出现问题,可以换一个目录执行以下操作:例如在/usr/local):
生成CA证书
1.创建私钥:
openssl genrsa -out ca-key.pem 1024
2.创建证书请求:
openssl req -new -out ca-req.csr -key ca-key.pem
根据下面的信息,填写国家名字,所在省份,所在市区,以及企业名字(可以随意起)
下面的
密码输入时直接回车
3.自签署证书:
openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650
不能大于2032年,否则有些芯片连接不了。
生成server证书
1.创建私钥:
openssl genrsa -out server-key.pem 1024
2.创建证书请求:
openssl req -new -out server-req.csr -key server-key.pem
common name粘贴: 此处写当前过期的emq证书所在的服务器ip
注意:创建server时,当前这个项必须填写你服务器得IPCommon Name (eg, YOUR name) []:
如果本地测试填写localhost即可
3.自签署证书:
openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650
生成client证书
1.创建私钥:
openssl genrsa -out client-key.pem 1024
2.创建证书请求:
openssl req -new -out client-req.csr -key client-key.pem
3.自签署证书:
openssl x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650
证书生成完毕
再修改相应配置名字:
FengdeMacBook-Pro:gfca1 fengguo$ mv ca-cert.pem cacert.pem
FengdeMacBook-Pro:gfca1 fengguo$ mv server-cert.pem cert.pem
FengdeMacBook-Pro:gfca1 fengguo$ mv server-key.pem key.pem
放入服务器。
scp -r ./* root@47.99.212.137:/root/mqtt/emq3-4/emqx/etc/certs
重启emq服务。
查看日期。
openssl x509 -noout -text -in gf.crt