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

一、环境

我把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端口,就可以直接访问你的网站,而不需要一个网站开一个端口。

 

你可能感兴趣的:(linux)