debain10 系統(tǒng)code-server云IDE使用nginx服務(wù)器配置mkcert證書將http升級(jí)https

debain10 系統(tǒng)code-server云IDE使用nginx服務(wù)器配置mkcert證書將http升級(jí)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代表通過密碼訪問。重新啟動(dòng)code-server。

# 停止code-server
ps -ef | grep code-server | grep -v grep | awk '{print $2}' | sed -n '1p' | xargs kill -9
# 啟動(dòng)code-server
nohup /usr/bin/code-server --host 0.0.0.0 --port 8080 --auth password

第二步,通過nginx反向代理code-server

安裝nginx

Nginx (engine x) 是一款輕量級(jí)的 Web 服務(wù)器 、反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。

sudo apt update
sudo apt install -y nginx

創(chuàng)建新站點(diǎn)配置文件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)的機(jī)器可以用內(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 是一個(gè)簡(jiǎn)單的零配置工具,由 Filippo Valsorda 使用 Go 編寫,用于制作本地瀏覽器可信 HTTPS SSL 證書,無需任何配置。

# 更新源
sudo apt-get update
# 安裝certutil工具
sudo apt install libnss3-tools

下載mkcert二進(jìn)制文件或者自己編譯,改名為mkcert,添加可執(zhí)行權(quán)限,移動(dòng)到/usr/local/bin/目錄

# 添加可執(zhí)行權(quán)限
chmod +x mkcert-v-linux-amd64
# 改名
mv mkcert-v-linux-amd64 mkcert
# 移動(dòng)
sudo cp mkcert /usr/local/bin/mkcert

創(chuàng)建本地CA

mkcert -install

生成證書

# 把mydomain.com改成你自己的域名
mkcert mydomain.com

在當(dāng)前目錄mkcert生成了兩個(gè)證書相關(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ù)提示安裝證書,步驟如下:

安裝證書--當(dāng)前用戶--將證書放入下列存儲(chǔ)位置--瀏覽--受信任的證書頒發(fā)機(jī)構(gòu)--確定

刪除證書的步驟

按 “Windows 鍵 + R” 調(diào)出運(yùn)行框,輸入 certmgr.msc 命令。打開證書控制臺(tái)。選擇剛才導(dǎo)入的證書刪除即可。

第四步,https反向代理

一些對(duì)安全性要求比較高的站點(diǎn),可能會(huì)使用 HTTPS(一種使用 ssl 通信標(biāo)準(zhǔn)的安全 HTTP 協(xié)議)。

這里不科普 HTTP 協(xié)議和 SSL 標(biāo)準(zhǔn)。但是,使用 nginx 配置 https 需要知道幾點(diǎn):

  • HTTPS 的固定端口號(hào)是 443,不同于 HTTP 的 80 端口
  • SSL 標(biāo)準(zhǔn)需要引入安全證書,所以在 nginx.conf 中你需要指定證書和它對(duì)應(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>

參考資料

code-server文檔

nginx將http升級(jí)到https并且同時(shí)支持http和https兩種請(qǐng)求、http自動(dòng)轉(zhuǎn)向https

mkcert 使用指南:如何快速創(chuàng)建自簽名 SSL 證書

如何使用 mkcert 創(chuàng)建 SSL 證書

nginx-tutorial

mkcert工具

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容