内网部署https
在部署guacamole的时候,发现不能复制粘贴浏览器之外的内容,查资料说是浏览器需要在https的环境中才能共享剪贴板。
guacamole部署 (debian 12 bookworm)
最简单的方式,使用docker部署。
- 新建一个空白目录
mkdir -p ~/docker/guacamole cd ~/docker/guacamole - 在目录下新建
docker-compose.yml文件,填入以下内容: ```yml version: “3.8”
services: guacamole: image: flcontainers/guacamole:latest container_name: guacamole restart: always ports: - 8080:8080 environment: - TZ=Asia/Shanghai volumes: - /etc/localtime:/etc/localtime:ro
3. 启动guacamole容器
```bash
sudo docker compose up -d
sudo docker ps
...
CONTAINER ID IMAGE PORTS NAMES
7a83dc12c591 flcontainers/guacamole:latest 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp guacamole
通过nginx部署ssl证书
- 安装mkcert
sudo apt install libnss3-tools # 去发布地址下载对应的二进制文件,注意cpu架构 # https://github.com/FiloSottile/mkcert/releases wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-arm64 chmod +x mkcert-v1.4.4-linux-arm64 sudo cp mkcert-v1.4.4-linux-arm64 /usr/local/bin/mkcert # 验证安装是否成功 mkcert --version ... v1.4.4 - 创建泛域名证书
mkdir -p /etc/nginx/certs cd /etc/nginx/certs mkcert "*.example.com" ls -l ... _wildcard.example.com-key.pem _wildcard.example.com.pem - 创建nginx ssl通用配置文件
/etc/nginx/conf.d/example.com.ssl_paramsssl_certificate /etc/nginx/certs/_wildcard.example.com.pem; ssl_certificate_key /etc/nginx/certs/_wildcard.example.com-key.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 30m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP; ssl_prefer_server_ciphers on; - 配置某个域名的nginx ``` server { listen 80; server_name mm.example.com; return 301 https://$server_name$request_uri; }
server { listen 443 ssl; server_name mm.example.com; include /etc/nginx/conf.d/example.com.ssl_params;
location / { proxy_pass http://127.0.0.1:8080; proxy_buffering off; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; access_log off; } }
5. 检测nginx配置文件、重新加载nginx配置
```bash
nginx -t
nginx -s reload
客户端主机安装根证书
- 在服务器安装根证书
mkcert --install # 查看根证书安装目录 mkcert -CAROOT ... /home/${user}/.local/share/mkcert # 查看根证书文件 ls $(mkcert -CAROOT) ... rootCA-key.pem rootCA.pem - 将根证书下载到客户端(macOS为例)
scp root@{server ip or hostname}:/home/${user}/.local/share/mkcert . - 安装根证书 自己查资料,略