一、环境
我把Gogs架设在了阿里云学生机上,使用的是CentOS7.4 x64,利用宝塔Linux面板安装了lnmp的运行环境。在此前尚未增加https的时候,我是利用nginx的反向代理,把80端口转发到3000端口(Gogs的默认服务端口是3000)就可以直接访问搭建完成的Gogs了,nginx配置如下【下文中所指的 www.host 皆为你自己访问gogs的域名】
server {
listen 80;
server_name www.host.com;
location / {
proxy_pass http://localhost:3000;
}
}
二、增加Https
2.1、申请HTTPS证书,并下载证书相关文件
在阿里云处填写相关信息并提交申请后,你可以下载到一个压缩包,其中包含了 fileName.pem / fileName.key 两个文件
2.2、修改Gogs配置文件
打开FXtp或其他工具,在gogs的安装目录中 custom/conf/app.ini 文件中修改下列配置选项
[server]
PROTOCOL = https
#注意这里要改成https://
ROOT_URL = https://www.host.com/
#证书文件
CERT_FILE = custom/https/fileName.pem
KEY_FILE = custom/https/fileName.pem
3、修改nginx反向代理配置
此前nginx反向代理如下
server {
listen 80;
server_name www.host.com;
location / {
proxy_pass http://localhost:3000;
}
}
现在补充一些配置
server {
listen 443;
server_name www.host.com;
ssl on;
ssl_certificate /home/git/gogs/custom/https/fileName.pem;
ssl_certificate_key /home/git/gogs/custom/https/fileName.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
#这里主要也要将http://修改为https://
proxy_pass https://localhost:3000;
}
}
server {
#HTTP跳转HTTPS
listen 80;
server_name www.host.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
修改后重启nginx后就可以享受https了
三、心得
事实上,在2.2这个步骤完成后就可以通过访问 https://你的IP地址:3000 看到,https实际上已经开启了。也就是说你如果不需要用域名访问你的gogs,直接开放3000端口,做到2.2步骤就可以了。
但我是通过开放443和80使用域名来进行端口转发的,这样的好处是:只要开放80端口,就可以直接访问你的网站,而不需要一个网站开一个端口。
本文档介绍了如何在阿里云CentOS7.4 x64环境中,使用宝塔Linux面板的LNMP环境,为通过Nginx反向代理的Gogs服务增加HTTPS支持。详细步骤包括申请证书、修改Gogs配置文件和更新Nginx配置,最终实现通过域名访问的HTTPS连接。
2102

被折叠的 条评论
为什么被折叠?



