使vscode的code-server支持https
Last Update:
Word Count:
Read Time:
没想到这玩意居然整了大半天XD(手不累,心累)
0x0 写在最前
vscode
的 code-server
是个好东西,部署起来方便,还能远程访问,但是加上 域名
、https
的buff后就很难受,网上基本没有相关文档。
0x1 环境信息
- 一个code-server,版本号:
1.63.0
- 操作系统:Ubuntu 20.04.3 LTS
- nginx版本:1.21.6
- 域名使用cloudflare进行A记录解析到服务器IP地址
1x0 摸索过程
1x1 获取ssl证书
很麻烦,真的很麻烦
1x1.1 一开始是通过 Cloudflare
Cloudflare
其中有三种证书类型: 边缘证书
、客户端证书
、源服务器
。
其中 边缘证书
并不能下载,而且(貌似)只对采用了代理模式的DNS解析生效,并且代理状态下code-server的延迟表现十分惊人(亲测),直接pass。客户端证书
中,官方已经写明:使用客户端证书保护和验证您的 API 和 Web 应用程序。
,并不能部署到服务器上,继续pass。
最后一个 源服务器
,官方也写明: 源证书仅对 Cloudflare 与源服务器之间的加密有效。
,最后pass。
(什么你问我 自定义主机名
?要付款的,拜拜了您嘞)
1x1.2 接下来通过腾讯云
在腾讯云的控制台,直接提交信息,不到一会就下来了。
但是使用过程中,在显示代码时状态还行(仅进行极小时间测试),一旦使用插件 Cloudmusic
(强烈推荐此插件,写代码时听歌必备),就会出现断连情况,原因未知,所以也是pass。
1x1.3 直到看到了官方文档
code-server的有关设置的官方文档,看的我一愣一愣的,直接大大的 ?
在脸上。
直到通篇下来整篇看完后,对于自己有用的也就一点。
其中端口转发是不可能的了,毕竟不想每次都要启动这玩意。Let's Encrypt
中,Ubuntu
并不能直接 apt install
,还要添加源仓库。
所以现在能用的就 nginx
,经尝试,此路可通。
2x0 开始配置
注意:这里的 code-server 需要关闭 cert 认证,使用默认配置即可
根据官方文档介绍,在配置时需要以下几步。
- 此选项要求将远程计算机暴露在互联网上。确保您的实例允许
HTTP/HTTPS
流量。 - 您需要一个域名(如果您没有域名,可以从
Google Domains
或您选择的域名服务购买一个域名))。拥有域名后,将 A 记录添加到包含实例 IP 地址的域中。 - 安装
NGINX
:1
2sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx注:这里的官方文档中,需要安装
nginx
(python3-certbot-nginx
也需要nginx
支持)。如果服务器的nginx
是编译安装(比如这里:配置一个好用的nginx),通过将编译后的objs/nginx
文件替换掉/usr/sbin/nginx
的方式,经过尝试是可行的。
使用 sudo 对以下配置进行更新:
/etc/nginx/sites-available/code-server
1
2
3
4
5
6
7
8
9
10
11
12
13server {
listen 80;
listen [::]:80;
server_name mydomain.com;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}请务必将
mydomain.com
替换为您的域名。注:经尝试,只要是被
nginx
引用的文件(包括include
),都是可以进行配置的。但其中的mydomain.com
必须和下方一致(推测是检查关键字后对文件进行修改)。启用配置:
1
2sudo ln -s ../sites-available/code-server /etc/nginx/sites-enabled/code-server
sudo certbot --non-interactive --redirect --agree-tos --nginx -d mydomain.com -m me@example.com请务必替换为您的实际电子邮件
me@example.com
此时,您应该能够通过https://mydomain.com访问 code-server
2x0 结语
code-server
的配置记录可能以后会发布。code-server
确实好用。
但 code-server
的插件有的并不能适配。Cloudflare
的国内延迟确实拉跨。
配置下来耗费的时间确实挺长(大概一整天),主要是查文档~和摸鱼~ 。
如果有错的及时通知。
完了。