专栏/利用自签名证书部署vscode coder server的https模式

利用自签名证书部署vscode coder server的https模式

2024年03月23日 04:56--浏览 · --点赞 · --评论
粉丝:101文章:1

vscode支持服务器部署,使用起来很方便,不过如果你没有开启https,当用浏览器连接coder server时,会提示当前处于不安全模式,会导致某些插件使用起来有问题。

如果你没有证书其实是可以使用自签名证书来部署https的,如果你去网上搜索教程,会发现按照所有这些教程操作下来,https是开启了,但是浏览器依旧不认可你的证书,导致code server依然处于不安全模式。问题在于证书设置错误。

错误出在设置证书时没有加上服务器ip地址参数,我们知道证书有域名证书和ip证书两种,如果你没有设置对,浏览器会发现证书与服务器对不上,依旧会给出错误提示。设置IP证书最简单的,下面给出部署方法,用下面这个流程就完全避免这个问题

  1. 在服务器上执行

    openssl req -x509 -newkey rsa:4096 -keyout code-server.key -out code-server.crt -days 1024 -nodes -subj "/CN=192.168.0.107" -extensions san -config <(echo "[req]"; echo distinguished_name=req; echo "[san]"; echo subjectAltName=IP:192.168.0.107)

    注意,我这里服务器ip地址是192.168.0.107,用你自己的服务器IP替换。生成证书文件。

  2. 在服务器上修改修改code server上的启动脚本,给coder-server命令后加上下面的参数,

    --cert /root/.config/code-server/code-server.crt --cert-key /root/.config/code-server/code-server.key

    --cert参数是告诉code-server开启https,其他两个参数是指定证书和密钥文件位置,用你自己的配置文件存储目录替换,如果你不知道code server启动脚本在哪里,可以执行sudo systemctl status code-server@user.service看看输出,注意,用你的coder server的用户名替换user,比如你的code server执行用户名是admin,就执行sudo systemctl status code-server@user.service,实在看不懂就输入sudo systemctl status code-server,按tab键一般会自动蹦出来

  3. 在windows上执行certmgr.msc,把证书(也就是.crt文件)文件导入到“受信任的根证书颁发机构”的证书下面,也就是在证书-》鼠标右键,选择"所有任务-》导入",剩下的就是按部就班,导入证书文件

  4. OK。现在访问coder server,所有浏览器不会有任何证书、安全方面的抱怨。不过由于是自签名证书,不要在生产环境或公网部署

其实这个方法不限于code server,所有需要证书的场景都可以这么用



投诉或建议