我之前写过文章《RouterOS建立SSTP服务器》将如何通过SSL证书搭建SSTP服务器,但是由于SSL证书时间有效期比较短,每年需要更新证书(RouterOS和客户端都要更新证书)比较麻烦,所以这次我通过RouterOS的自签名证书搭建SSTP VPN服务,自签名证书可以达到10年不需要更新证书。
一、创建自签名证书
1、生成根证书。
System --> Certificates --> +
General选项卡,Name输入名称,如ca-77bx;Common Name输入RouterOS的公网IP或者域名,如ca.77bx.com; Days Valid输入有效期,建议输入3650。
Key Usage选项卡,勾选crl sign和key cert. sign,点击ok完成根证书创建。
2、生成中间证书
System --> Certificates --> + ,General选项卡,Name输入名称,如server-77bx;Common Name输入*.77bx.com; Days Valid输入有效期,建议输入3650。
Key Usage选项卡,勾选digital signature、key encipherment和tls server,点击ok完成中间证书创建。
3、生成客户端证书(私钥)
System --> Certificates --> + ,General选项卡,Name输入名称,如client-77bx;Common Name输入ros.77bx.com; Days Valid输入有效期,建议输入3650。
Key Usage选项卡,勾选tls client,点击ok完成客户端证书创建。
4、证书签名
根证书签名,ca-77bx右键 --> Sign,Certificate选择ca-77bx, CA CRL. HOST填入RouterOS的公网IP或者域名(我这里ca.77bx.com已经解析到RouterOS),点击Start。
客户端证书签名,client-77bx右键 --> Sign,Certificate选择client-77bx, CA选择ca-77bx,点击Start。
中间证书签名,server-77bx右键 --> Sign,Certificate选择server-77bx, CA选择ca-77bx,点击Start。
以下是创建证书命令:
/certificate add name=ca-77bx common-name=ca.77bx.com days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign /certificate add name=server-77bx common-name=*.77bx.com days-valid=3650 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server /certificate add name=client-77bx common-name=ros.77bx.com days-valid=3650 key-size=2048 key-usage=tls-client /certificate sign ca-77bx name=ca-77bx ca-crl-host=ca.77bx.com /certificate sign server-77bx name=server-77bx ca=ca-77bx /certificate sign client-77bx name=client-77bx ca=ca-77bx
二、SSTP服务器配置
1、启用SSTP服务,PPP --> Interface选项卡,点击SSTP Server,打开设置框,勾上Enabled,Port修改默认的443端口(443端口大部分地区已封),Certificate选择证书,如server-77bx,点击OK
2、配置地址池,ip --> Pool --> +,Name输入VPN-Remote,Address输入100.64.1.2-100.64.2.254,点击OK创建完成
3、创建SSTP配置,PPP --> Profiles选项卡 --> +,Name输入VPN,Local Address输入ros网关地址即可,Romte Address输入VPN-Remote(上面创建的VPN地址池),DNS服务器配置下即可。
4、创建SSTP账号,PPP --> Secrets选项卡 --> +,Name表示VPN的用户名,Password表示VPN的密码,Service选择sstp,Profile选择刚才创建的VPN,点击OK即可。
以下是SSTP服务器配置命令:
/ip pool add name="VPN-Remote" ranges=100.64.1.2-100.64.2.254 /ppp profile add name="VPN" use-encryption=yes local-address=10.0.0.1 dns-server=10.0.0.1 remote-address=VPN-Remote /ppp secret add name=vpn profile=VPN password=77bx service=sstp /interface sstp-server server set enabled=yes default-profile=VPN certificate=server-77bx port=444
三、客户端证书导入
1、RouterOS导出ca证书
System --> Certificates,ca-77bx根证书右击,Export导出。
Files --> cert_export_ca-77bx.crt右击,点击Download下载到客户端。
2、安装ca根证书
证书右键,点击“安装证书”
选择“本地计算机”,点击“下一步”
选择“将所有的证书都放入下列存储”,点击“浏览”,选择“受信任的根证书颁发机构”,点击“确定”,点击“下一步”
点击“完成”
安全警告,点击“是”即可,提示导入成功。
四、创建客户端SSTP拨号
1、配置VPN,设置 --> 网络和Internet --> VPN,添加VPN连接,如下图配置
2、连接测试,已能正常上网
目前有 6 条评论
Nathan 2024-07-12 18:243楼
憑證匯入windows那邊,我選本地計算機才會成功,不然匯入的CA好像windows都沒找到 謝謝分享了~评论
空垂星随 2023-04-01 14:162楼
无法连接到SSTP 根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内。。。。这是啥回事啊。。。评论
星之宇 2023-04-01 20:32
RouterOS的时间要对,注意时区。回复
空垂星随 2023-04-28 13:23
谢谢您大神。回复
小暗雀 2022-12-28 18:071楼
博主,在签署中间证书的时候提示couldn\"t start - cerficate with the same subject exists! ros是7.7版本评论
星之宇 2022-12-29 09:11
已经生成了这个证书,换个就好,或者删除重新生成回复