在内网环境中为 Gogs 配置 HTTPS 访问

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

在内网环境中为 Gogs 配置 HTTPS 访问,虽然不需要公网域名,但仍需通过自签名证书或私有证书实现加密。以下是详细步骤和方案:


一、核心方案选择

方案适用场景优点缺点
自签名证书快速测试、临时使用无需域名,快速生成浏览器提示“不安全”
私有 CA 证书企业内网统一管理所有设备信任私有 CA,无警告需维护私有 CA 基础设施
反向代理 HTTPS集中管理多服务 HTTPS统一证书管理,灵活配置需部署反向代理(如 Nginx)

二、使用自签名证书配置 HTTPS

1. 生成自签名证书
bash
# 生成私钥和证书(有效期365天)
openssl req -x509 -newkey rsa:4096 -nodes -keyout gogs.key -out gogs.crt -days 365 -subj "/CN=192.168.1.100"  # 替换为内网IP或主机名
2. 配置 Gogs 使用 HTTPS

编辑 Gogs 配置文件 custom/conf/app.ini

[server]
DOMAIN           = 192.168.1.100  # 内网IP或主机名
HTTP_PORT        = 3000
ROOT_URL         = https://192.168.1.100/  # 必须使用 HTTPS
PROTOCOL         = https
CERT_FILE        = /path/to/gogs.crt  # 证书路径
KEY_FILE         = /path/to/gogs.key  # 私钥路径
3. 重启 Gogs 服务
sudo systemctl restart gogs
4. 客户端信任自签名证书
  • Windows:双击 .crt 文件,选择“安装证书” → “本地计算机” → “受信任的根证书颁发机构”。

  • Linux

    bash

    sudo cp gogs.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates

三、通过反向代理实现 HTTPS(推荐)

1. 使用 Nginx 反向代理
  1. 生成自签名证书(同上)。

  2. 配置 Nginx(示例):

    server {
        listen 443 ssl;
        server_name 192.168.1.100;  # 内网IP或主机名
    
        ssl_certificate /path/to/gogs.crt;
        ssl_certificate_key /path/to/gogs.key;
    
        location / {
            proxy_pass http://127.0.0.1:3000;  # 转发到 Gogs 的 HTTP 端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
  3. 重启 Nginx

    sudo systemctl restart nginx
2. 调整 Gogs 配置

确保 ROOT_URL 与反向代理地址一致:

[server]
ROOT_URL = https://192.168.1.100/  # 与 Nginx 的 server_name 一致
PROTOCOL = http  # Gogs 本身运行 HTTP,由 Nginx 处理 HTTPS

四、使用私有 CA 证书(企业级方案)

1. 创建私有 CA
# 生成 CA 私钥和根证书
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -key ca.key -days 3650 -out ca.crt -subj "/CN=My Internal CA"
2. 签发 Gogs 证书
# 生成证书请求
openssl req -newkey rsa:4096 -nodes -keyout gogs.key -out gogs.csr -subj "/CN=192.168.1.100"

# 使用 CA 签发证书
openssl x509 -req -in gogs.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out gogs.crt -days 365
3. 配置 Gogs 或反向代理
  • 将 gogs.crt 和 gogs.key 配置到 Gogs 或 Nginx(参考上文步骤)。

  • 在所有客户端安装 ca.crt 到受信任的根证书颁发机构。


五、验证 HTTPS 访问

  • 浏览器访问:打开 https://192.168.1.100,确认无安全警告。

  • CURL 测试

    curl -k https://192.168.1.100  # 忽略证书验证(测试用)
    curl --cacert /path/to/ca.crt https://192.168.1.100  # 使用私有 CA 验证

六、常见问题解决

  1. 浏览器提示“不安全”

    • 自签名证书需手动信任(安装到系统根证书)。

    • 私有 CA 证书需提前部署到所有客户端。

  2. Gogs 页面资源加载失败
    检查 ROOT_URL 是否配置为 HTTPS,避免混合 HTTP/HTTPS 内容。

  3. 端口冲突

    • 确保 Nginx 或 Gogs 未占用相同端口(如 443)。

    • 开放防火墙:

      sudo ufw allow 443/tcp

七、优化建议

  • 自动化证书管理:使用 mkcert 工具快速生成本地可信证书:

    mkcert 192.168.1.100  # 自动生成浏览器信任的证书
  • 强制 HTTPS 跳转:在 Nginx 中配置 80 端口重定向:

    server {
        listen 80;
        server_name 192.168.1.100;
        return 301 https://$host$request_uri;
    }

通过上述方法,即使在内网无公网域名的情况下,也能为 Gogs 实现安全的 HTTPS 访问。根据实际需求选择自签名证书、私有 CA 或反向代理方案。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### 如何在 Gogs 中添加和配置 SSH 密钥 #### 创建 SSH 密钥 为了能够在 Gogs 上通过 SSH 进行身份验证,首先需要在本地生成一个新的 SSH 密钥对。如果已经存在其他用途的密钥,则建议为 Gogs 单独创建一组新的密钥以避免冲突。 运行以下命令来生成专用于 Gogs 的 RSA 类型密钥: ```bash ssh-keygen -t rsa -f ~/.ssh/id_rsa_gogs -C "你的邮箱地址" ``` 上述命令会在 `~/.ssh/` 文件夹下生成两个文件:`id_rsa_gogs` 和 `id_rsa_gogs.pub`。前者是私钥,后者是公钥[^1]。 #### 查看并复制公钥 找到刚刚生成的公钥文件路径 (`~/.ssh/id_rsa_gogs.pub`) 并将其内容复制到剪贴板中以便稍后上传到 Gogs: 执行以下命令查看公钥的内容: ```bash cat ~/.ssh/id_rsa_gogs.pub ``` 将显示的结果完整复制下来备用[^2]。 #### 登录 Gogs 账号并设置 SSH Key 访问 Gogs 的 Web 界面,在右上角点击头像图标选择 **Settings (个人设置)** -> 左侧菜单栏中的 **SSH Keys** 或者类似的选项名称(具体取决于版本)。接着按提示操作完成新 SSH Key 的录入工作——把之前准备好的公钥粘贴进去即可保存提交[^3]。 #### 修改客户端配置支持多个主机名区分不同服务 为了避免与其他远程仓库连接混淆或者覆盖原有默认行为的情况发生,推荐编辑用户的全局 `.ssh/config` 文件实现更精确控制每种情况下的认证方式。如果没有该文件可以手动建立它;其结构大致如下所示: ```plaintext Host your-gogs-domain.com IdentityFile ~/.ssh/id_rsa_gogs IdentitiesOnly yes # 如果还有其他的常规SSH需求保留这一部分正常定义就好 Host * IdentityFile ~/.ssh/id_rsa_default ``` 这样当向指定域名为目标发起请求时就会自动选用对应的专用密钥而不会误用别的凭据数据了。 #### 测试连通性确认无误 最后一步非常重要也是必不可少的一个环节就是检验整个流程是否顺畅有效果。可以通过尝试简单的 ping 命令模拟实际交互过程看看反馈消息里有没有错误提示信息返回回来作为判断依据之一: ```bash ssh -T git@your-gogs-domain.com ``` 如果一切顺利的话应该能够看到类似于 “Welcome to GitLab, @username!” 字样的欢迎语句证明成功建立了基于 SSH 的安全通道链接关系。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值