在此前一直使用openssl工具来创建自签CA和证书。但是openssl命令参数过于复杂,证书创建完成后很长一段时间不会再接触,难免会产生遗忘。

RouterOS提供了一个轻便的证书管理系统,支持自签CA和证书颁发,并且还支持SCEP和CSR方式对证书进行签名。下面就如何使用做一下说明。

关于证书的所有操作位于/certificate子菜单下。

自签CA和签发证书

创建CA。

/certificate add name="SimaekRootCA" digest-algorithm=sha256 key-size=2048 \
common-name="Simaek Root CA" days-valid=3650 key-usage=key-cert-sign,crl-sign \
organization="Simaek Studio" country=CN state=Jiangsu locality=Nanjing \
unit="Simaek Certification Authority"

自签CA。

/certificate sign SimaekRootCA

创建中间CA。

/certificate add name="SimaekIntermediateCA" digest-algorithm=sha256 key-size=2048 \
common-name="Simaek Public DV RSA CA - G1" days-valid=3650 \
key-usage=digital-signature,key-cert-sign,crl-sign \
organization="Simaek Studio" country=CN state=Jiangsu locality=Nanjing \
unit="Simaek Certification Authority"

使用根CA签名中间CA。

/certificate sign SimaekIntermediateCA ca=SimaekRootCA

创建最终证书。

/certificate add name="simaek.com" digest-algorithm=sha256 key-size=2048 \
common-name="simaek.com" days-valid=365 \
key-usage=digital-signature,key-encipherment \
organization="Simaek Studio" country=CN state=Jiangsu locality=Nanjing \
unit="Simaek Blog" subject-alt-name=DNS:*.simaek.com,DNS:*.simaek.cn

使用中间CA签名最终证书。

/certificate sign simaek.com ca=SimaekIntermediateCA

导出根CA、中间CA和最终证书。
由于最终证书在部署时需要用到私钥,必须设置密码才能导出私钥。默认导出的格式是pem,也可以选择pkcs12,对于Mac和Windows设备会更加友好。

/certificate export-certificate SimaekRootCA file-name=root
/certificate export-certificate SimaekIntermediateCA file-name=chain
/certificate export-certificate simaek.com file-name=simaek.com export-passphrase=12345678

导出后通过FTP或者Winbox将文件拷贝到需要使用的地方就大功告成了。

补充一下,导出的私钥文件带有密码,在部署的时候需要将这个密码删除。RouterOS本身无法进行这样的操作,还需要借助openssl。

openssl rsa -in simaek.com.key -out server.key

部署到Nginx一些服务器,需要将中间证书和证书绑定在一起,PEM格式只需要将两个文件的文本合并就可以了。

cat chain.crt simaek.com.crt > simaek.com.cabundle
最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏