debain10 系統(tǒng)code-server云IDE使用nginx服務(wù)器配置mkcert證書將http升級https
第一步, 修改code-server配置
vi ~/.config/code-server/config.yaml
配置修改為
bind-addr: 0.0.0.0:8080
auth: password
password: qhiH2b2uXxTHFT
cert: false
其中,0.0.0.0
代表監(jiān)聽所有统锤,8080
表示端口流济,auth: password
代表通過密碼訪問。重新啟動code-server
蛮寂。
# 停止code-server
ps -ef | grep code-server | grep -v grep | awk '{print $2}' | sed -n '1p' | xargs kill -9
# 啟動code-server
nohup /usr/bin/code-server --host 0.0.0.0 --port 8080 --auth password
第二步,通過nginx反向代理code-server
安裝nginx
Nginx (engine x) 是一款輕量級的 Web 服務(wù)器 、反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器易茬。
sudo apt update
sudo apt install -y nginx
創(chuàng)建新站點配置文件code-server.conf
酬蹋,修改配置文件
vi code-server.conf
sudo cp code-server.conf /etc/nginx/sites-available/
內(nèi)容
server {
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;
}
}
內(nèi)網(wǎng)的機器可以用內(nèi)網(wǎng)穿透工具掛載域名。
# 創(chuàng)建軟鏈接到sites-enabled使用配置生效
sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf
# 重啟nginx服務(wù)器
sudo systemctl restart nginx
現(xiàn)在已經(jīng)可以用普通端口訪問了抽莱。接下來配置證書范抓。
第三步,mkcert創(chuàng)建證書
mkcert 是一個簡單的零配置工具食铐,由 Filippo Valsorda 使用 Go 編寫匕垫,用于制作本地瀏覽器可信 HTTPS SSL 證書,無需任何配置虐呻。
# 更新源
sudo apt-get update
# 安裝certutil工具
sudo apt install libnss3-tools
下載mkcert二進制文件或者自己編譯年缎,改名為mkcert
,添加可執(zhí)行權(quán)限铃慷,移動到/usr/local/bin/
目錄
# 添加可執(zhí)行權(quán)限
chmod +x mkcert-v-linux-amd64
# 改名
mv mkcert-v-linux-amd64 mkcert
# 移動
sudo cp mkcert /usr/local/bin/mkcert
創(chuàng)建本地CA
mkcert -install
生成證書
# 把mydomain.com改成你自己的域名
mkcert mydomain.com
在當前目錄mkcert
生成了兩個證書相關(guān)文件单芜。
mydomain.com-key.pem
mydomain.com.pem
查看rootCA
文件路徑
$ mkcert -CAROOT
/home/zzyy/.local/share/mkcert
$ ls /home/zzyy/.local/share/mkcert
rootCA-key.pem rootCA.pem
將 rootCA.pem
復(fù)制到 PC 上,并將其后綴改為 .crt
犁柜。
雙擊 rootCA.crt
洲鸠,根據(jù)提示安裝證書,步驟如下:
安裝證書--當前用戶--將證書放入下列存儲位置--瀏覽--受信任的證書頒發(fā)機構(gòu)--確定
刪除證書的步驟
按 “Windows 鍵 + R” 調(diào)出運行框馋缅,輸入 certmgr.msc 命令扒腕。打開證書控制臺。選擇剛才導(dǎo)入的證書刪除即可萤悴。
第四步瘾腰,https反向代理
一些對安全性要求比較高的站點,可能會使用 HTTPS(一種使用 ssl 通信標準的安全 HTTP 協(xié)議)覆履。
這里不科普 HTTP 協(xié)議和 SSL 標準蹋盆。但是费薄,使用 nginx 配置 https 需要知道幾點:
- HTTPS 的固定端口號是 443,不同于 HTTP 的 80 端口
- SSL 標準需要引入安全證書栖雾,所以在 nginx.conf 中你需要指定證書和它對應(yīng)的 key
其他和 http 反向代理基本一樣楞抡,只是在 Server
部分配置有些不同。
修改code-server.conf
配置文件析藕。
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name mydomain.com;
ssl_certificate /home/user/mydomain.com.pem;
ssl_certificate_key /home/user/mydomain.com-key.pem;
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;
}
}
重啟nginx
sudo systemctl restart nginx
重啟瀏覽器再次訪問召廷,可以看到連接已經(jīng)變?yōu)榘踩?/p>
參考資料
nginx將http升級到https并且同時支持http和https兩種請求、http自動轉(zhuǎn)向https