在此前一直使用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