在Ubuntu内网环境中为Gogs配置HTTPS访问(通过Apache反向代理使用IP地址)

Git 代码库 gogs 部署私服及 https 配置手册 玩了一下 Git 的服务搭建平台 gogs,本文记录这个过程。 阅读详情

一、准备工作

  1. 确保已安装Gogs并运行在HTTP模式(默认端口3000)

  2. 确认服务器内网IP地址(如192.168.1.100)

二、安装Apache和必要模块

sudo apt update
sudo apt install apache2 -y
sudo a2enmod ssl proxy proxy_http rewrite headers

三、创建SSL证书

1. 创建证书存储目录

sudo mkdir -p /etc/apache2/ssl/gogs
sudo chmod 700 /etc/apache2/ssl

2. 生成自签名证书(使用IP地址)

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
    -keyout /etc/apache2/ssl/gogs/gogs.key \
    -out /etc/apache2/ssl/gogs/gogs.crt \
    -subj "/CN=192.168.1.100" -addext "subjectAltName=IP:192.168.1.100"

请将192.168.1.100替换为你的实际内网IP地址

四、配置Apache虚拟主机

1. 创建IP访问专用配置文件

sudo nano /etc/apache2/sites-available/gogs-ip-ssl.conf

2. 添加以下配置内容

<VirtualHost *:80>
    ServerName 192.168.1.100
    Redirect permanent / https://192.168.1.100/
</VirtualHost>

<VirtualHost *:443>
    ServerName 192.168.1.100
    
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/gogs/gogs.crt
    SSLCertificateKeyFile /etc/apache2/ssl/gogs/gogs.key
    
    # 安全配置
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite HIGH:!aNULL:!MD5
    SSLHonorCipherOrder on
    
    # 反向代理配置
    ProxyPreserveHost On
    ProxyRequests off
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
    
    # 传递HTTPS信息
    RequestHeader set X-Forwarded-Proto "https"
    
    # 提高上传限制(50MB)
    LimitRequestBody 52428800
    
    # 日志配置
    ErrorLog ${APACHE_LOG_DIR}/gogs-error.log
    CustomLog ${APACHE_LOG_DIR}/gogs-access.log combined
    
    # WebSocket支持
    RewriteEngine on
    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteCond %{HTTP:Connection} upgrade [NC]
    RewriteRule ^/?(.*) "ws://localhost:3000/$1" [P,L]
</VirtualHost>

3. 启用配置并重启Apache

sudo a2ensite gogs-ip-ssl
sudo systemctl restart apache2

五、配置Gogs

1. 编辑Gogs配置文件

sudo nano /home/git/gogs/custom/conf/app.ini

2. 修改以下配置项

[server]
DOMAIN           = 192.168.1.100
HTTP_PORT        = 3000
ROOT_URL         = https://192.168.1.100/
PROTOCOL         = http

3. 重启Gogs服务

sudo systemctl restart gogs

六、防火墙配置

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

七、访问测试

  1. 在浏览器访问 https://192.168.1.100

  2. 首次访问需要接受安全警告(因为是自签名证书)

八、解决IP地址SSL证书警告

方案1:在客户端临时禁用 SSL 验证(仅测试环境)
git -c http.sslVerify=false clone https://192.168.28.130/root/project1.git
方案2:在客户端永久禁用 SSL 验证(不推荐生产环境)
git config --global http.sslVerify false
方案3:将证书添加到 Git 信任列表(推荐)

    1. 导出证书(在服务器上执行)

       sudo cp /etc/apache2/ssl/gogs/gogs.crt /tmp/
       sudo chmod 644 /tmp/gogs.crt

    2. 将证书文件gogs.crt分发到客户端机器

    3. 在各客户端操作系统中导入证书为受信任的根证书

九、注意事项

  1. 如果服务器IP变更,需要重新生成证书并更新所有配置

  2. 建议在内网DNS服务器中添加解析记录,方便记忆

  3. 生产环境建议使用域名而非IP地址

十、验证配置

# 检查Apache是否监听443端口
sudo netstat -tulnp | grep apache

# 检查Gogs是否运行
sudo systemctl status gogs

# 检查HTTPS访问日志
sudo tail -f /var/log/apache2/gogs-access.log

此配置方案专为内网IP访问设计,无需域名解析,适合纯内网环境使用。

ubuntu搭建apache-https服务 ubuntu从零开始搭建apache2-https服务 阅读详情

相关推荐

Gogs私服搭建

Gogs是一个轻量级的git服务(代码托管平台),基于Go语言开发,其设计和性能优化使得它适合于小型团队和个人开发者。它具有Web界面,可以让您方便地管理和浏览仓库、处理问题、进行代码审查和管理团队成员。

白豆五的博客 7848

在Ubuntu 上安装Gogs Git服务

本教程将涵盖在 Ubuntu 22.04|20.04|18.04 服务器上安装 Gogs 自托管 Git 服务所需的所有步骤。Gogs 项目是用 Go 编写的,旨在通过轻松的设置过程构建一个简单、稳定和可扩展的自托管 Git 服务。Gogs 作为独立的二进制发行版进行分发,并在 Go 支持的所有平台上运行,包括 Linux、macOS、Windows 和 ARM。Gogs 性能出色,而且非常轻。它的 RAM 和 CPU 利用率非常低。

hktkfly6的专栏 1530

Ubuntu上实现Gogs+Jenkins在代码提交时自动创建合并请求

环境配置 Ubuntu版本:Ubuntu 20.04.2 LTS Jenkins版本:2.303.3 Gogs版本:0.12.3 安装Jenkins必要插件 安装Generic Webhook Trigger Plugin插件,方便监听Gogs的webhook。 安装Python Plugin插件,方便在构建时执行shell脚本(间接执行python脚本) 构建一个git push能触发的jenkins任务 新建Jenkins任务并配置参数。 在Jenkins首页,点击“新建任务”,输入任务名称,一

May-gemini的博客 2602

gogs git 服务器极速搭建

小型团队合作中,需要代码托管在内网,gitlab 等搭建比较复杂,经过一番搜寻发现gogs满足需求 基本用户管理 后台管理面板,能在web端查看管理 安装配置极简

LeoForBest的博客 725

Ubuntu下搭建本地的gogs(git管理工具)

Ubuntu下搭建本地的gogs(git管理工具) 1.首先安装docker容器: sudo apt- get install docker docer-ce docker-engine​​ 2.docker配置镜像加速: 镜像加速 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我 使用的是网易的镜像地址:http://hub-mirror.c.163.co...

u010817136的专栏 607

Ubuntu下配置 Apache HTTPS 服务器

在本文中,我们将学习如何在 Ubuntu 系统上配置 Apache 服务器以支持 HTTPS。安装 Apache、获取 SSL 证书并配置 Apache 以支持 HTTPS 可以帮助您保护网站的数据传输安全。记得定期更新证书以确保安全性。您可以从权威的证书颁发机构(CA)购买证书,或者使用免费的证书颁发机构,如 Let’s Encrypt。为了验证您的 HTTPS 配置是否成功,您可以在 Web 浏览器中访问您的域名,并检查是否显示了安全的锁图标。现在,您的 Apache 服务器已配置为支持 HTTPS。

TechABC的博客 643

基于Gitea、Drone与Harbor搭建自托管CI/CD平台实战指南

在DevOps实践中,持续集成与持续部署(CI/CD)是提升交付效率的核心环节。对于注重数据主权和定制化的团队,自托管CI/CD平台成为理想选择。容器化技术为构建、分发和运行应用提供了标准化基础,而代码托管、流水线调度与镜像管理则构成了平台的关键支柱。本文从CI/CD的基本概念出发,剖析基于Gitea进行代码托管、Drone编排流水线、Harbor管理容器镜像,并借助Docker容器运行时与Nginx反向代理实现统一入口的完整技术栈原理。通过服务编排、OAuth对接和流水线配置,展示一条从代码提交到自动构建

weixin_33937499的博客 416

SSCardDriver.dll社会保障卡读写终端接口规范38号文接口

********************获取设备及PSAM卡信息********************//********************获取银行账户信息 ********************//********************获取设备信息********************//********************PIN校验********************//********************通用写卡********************/

广东东信智能科技有限公司的专栏 1734

ubuntu搭建git服务器(Gogs服务器)

参考博客: Gogs搭建自己的代码服务器 - 知乎 Ubuntu 18.04.1 LTS 64位搭建Gogs详细步骤 - 简书

u014630142的博客 583

PLL Performance,Simulation and Design 4th学习笔记——Chapter1

Chapter1:基本PLL概述 VCO:Voltage-Controlled Oscillator压控振荡器,对于给定的一个输入电压,输出特定频率的振荡信号。 PLL:Phase-Locked Loops锁相环,输出特定频率,特定相位的振荡信号。 基本PLL操作和术语 基本模块 基本模块 输入 输出 传输函数 说明 XTAL - 参考频率ϕref\phi_{ref}ϕref​ - 稳定的晶振提供输入参考频率(这里用相位,便于理解鉴相器) R Counter ϕref\phi_{ref

张硕的博客 1551

波克 上海 Unity开发笔试题 2024

主要分为四部分,如果没有准备好,不要点击笔试链接,进入就会自动开始。

z2014z的博客 3392

gogs的自定义配置

下载并安装后,在程序目录下建立一个。nginx的转发配置。

nomandia的专栏 3483

【深度学习】通俗易懂讲解循环神经网络LSTM

目录 1、循环神经网络(Recurrent Neural Networks) 2、长依赖存在的问题 3、LSTM 网络 4、LSTMs的核心思想 5、一步一步理解LSTM 6、LSTM的变种 7、总结 1、循环神经网络(Recurrent Neural Networks) 人对一个问题的思考不会完全从头开始。比如你在阅读本片文章的时,你会根据之前理解过的信息来理解下面看到的文字。...

Nieson2012的专栏 2726

使用Gogs搭建Git私仓——Ubuntu上Gogs安装与配置

以上步骤完成了 Gogs 的安装与配置,确保在安装前后检查相关服务状态与防火墙设置,以便顺利使用 Gogs 进行 Git 管理。

beta___的博客 1653

STM32L151C8T6低功耗实战:RTC闹钟唤醒停机模式的配置与优化

本文详细介绍了如何在STM32L151C8T6微控制器上配置与优化RTC闹钟唤醒停机模式,以实现极致的低功耗设计。文章从核心原理出发,结合STM32CubeMX配置实战,深入讲解了进入停机模式前的关键准备工作、唤醒后的系统恢复流程,并分享了将功耗降至个位数微安级的深度优化技巧与常见问题解决方案。

weixin_29166013的博客 298

从学生项目到工程实践:手把手教你用ATE测试电源芯片的Rdson与漏电流

本文详细介绍了如何将学术级的电源芯片测试方案转化为工业级解决方案,重点讲解使用ATE设备测试Rdson(导通电阻)和漏电流的关键技术。从设备选型、测试夹具设计到量产环境下的工程化实现,提供了实用的优化技巧和常见问题解决方案,帮助工程师提升测试效率和精度。

weixin_42525289的博客 180

Gogs代码托管系统安装配置手册

一、系统概述1、说明2、代码管理工具3、为什么是gogs?二、安装Gogs1、安装git2、环境配置3、安装Gogs1、下载gogs:2、解压和复制3、准备用户和仓库目录4、启动三、Gogs配置1、官方配置项2、 当前使用配置四、系统服务配置1、说明2、gogs.service配置3、通过systemctl启用gogs4、Nginx代理五、Gogs的API接口六、迁移其他平台仓库1、说明2、获取阿里云所有的仓库地址3、 编写python迁移脚本4、 执行迁移5、后续工作七、 使用约定1、 权限规定 一、系.

夏已微凉、 5016

计算机应用数学--第一次作业

中科大 计算机应用数学 第一次作业

一杯水果茶!足矣~ 1328

Centos 7.6搭建Gogs服务并设置HTTPS与邮箱详细教程

前言 ①什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务。 ②Gogs使用介绍 Gogs是一款类似Github/GitLab的开源文件/代码管理系统(基于Git)。 ③目前功能基本介绍 远程代码仓库管理 代码仓库权限分配、管理 团队管理 代码审查 ④选择原因 Gogs是轻量级Git服务器的不二选择,因为GitLab比较重,对资源要求比较高,而且搭建流程相对复杂(使用docker搭建...

编程浅谈 3979

Python 3.13.7 (64-bit)安装弹窗提示:Setup failed:0x80070643 - 安装时发生严重错误...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 2108

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Gogs安装和部署教程-centos上

Gogs 是一款极易搭建的自助 Git 服务。Gogs安装和部署教程-centos上

helloxiaozhe的博客 7701

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

openssl req -x509 -newkey rsa:4096 -nodes -keyout gogs.key -out gogs.crt -days 365 -subj "/CN=192.168.1.100" # 替换为内网IP或主机名。curl --cacert /path/to/ca.crt https://192.168.1.100 # 使用私有 CA 验证。ROOT_URL = https://192.168.1.100/ # 与 Nginx 的 server_name 一致。

pingxiaozhao的博客 1641

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ubuntu 服务器中使用Apache2配置https

可以在阿里云的申请一个免费证书,部署的时候选择负载均衡,然后下载Apache2的证书 a2enmod 可以 通过 sudo apt-get installa2enmod 进行安装 1、开启SSL模块   a2enmod ssl  2、启用SSL站点   a2ensite default-ssl(如果启用的是这个文件的站点,则必须在此文件进行证书的配置)  3、加入监听端口   su...

soha_dong的博客 2050

3分钟为反向代理架设的Gogs增加https服务(nginx)

一、环境 我把Gogs架设在了阿里云学生机上,使用的是CentOS7.4 x64,利用宝塔Linux面板安装了lnmp的运行环境。在此前尚未增加https的时候,我是利用nginx的反向代理,把80端口转发到3000端口(Gogs的默认服务端口是3000)就可以直接访问搭建完成的Gogs了,nginx配置如下【下文中所指的 www.host 皆为你自己访问gogs的域名】 server { ...

MainGuo的博客 4265

【无标题】

本文介绍了在Ubuntu系统上搭建Gogs本地Git仓库服务的完整流程。主要内容包括环境准备、用户创建、Gogs安装配置、systemd服务设置以及Web初始化步骤。文章还提供了常见问题解决方案,如服务启动失败和日志路径参数错误等问题。通过SQLite3数据库和简单的配置即可快速部署轻量级Git服务,适用于个人或团队代码管理。文中所有命令均经过Gogs 0.13.0和Ubuntu 20.04/22.04环境验证。

weixin_75149154的博客 506

Ubuntu 20.04 安装及 Docker Gogs 安装部署

目录 前期准备 安装 前期准备 Hyper-V+ ubuntu-server 20.04 镜像 安装 选择语言 设置键盘 配置动态IP地址 设置镜像源地址,这个可以配置阿里云(http://mirrors.aliyun.com/ubuntu/),下载加速 安装 SSH 工具,主要是外部连接该 linux,因为在里面实在太难操作了 系统配置完成,安装界面 更新..

柳岸花明 1016
上一篇: 在内网环境中为 Gogs 配置 HTTPS 访问
下一篇: gogs私服对应SSH 协议配置
pingxiaozhao
博客等级 码龄16年 274粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值