云网牛站
所在位置:首页 > Linux云服务器 > 配置JFrog Artifactory的方法:使用Nginx反向代理和加密SSL

配置JFrog Artifactory的方法:使用Nginx反向代理和加密SSL

2019-04-13 10:15:58作者:王明著稿源:云网牛站

本文介绍使用Nginx反向代理和Let’s Encrypt SSL(加密SSL)来配置JFrog Artifactory,适用在Linux操作系统中。默认情况下,JFrog Artifactory绑定到服务器上的IP地址和端口号,这意味着只能通过IP或域名和指定的端口号进行访问,如果你希望有更高的安全性,那么将需要使用反向代理(如Nginx)来保护对JFrog Artifactory服务器的访问。

 

安装JFrog Artifactory参考文章

在Ubuntu 18.04/16.04上安装JFrog Artifactory的步骤

在CentOS 7系统上安装JFrog Artifactory的方法

注:一旦已有JFrog Artifactory服务器,那么继续使用Let的加密SSL作为反向代理来配置Nginx。

 

一、安装Nginx

在要用于反向代理功能的服务器上安装Nginx,这可以是在运行Artifactory的服务器或不同的服务器:

1、CentOS/RHEL平台:

$ sudo yum -y install nginx

2、Fedora平台:

$ sudo dnf -y install nginx

3、Ubuntu/Debian平台:

$ sudo apt -y install nginx

安装Nginx Web服务器后,启动该服务并将其设置为在系统引导时启动:

sudo systemctl start nginx

sudo systemctl enable nginx

 

二、安装Cerbot工具

接下来是Certbot工具的安装,该工具用于获取Let的加密SSL证书,下载并安装certbot-auto命令行工具:

curl -sL https://dl.eff.org/certbot-auto | sudo tee /usr/local/bin/certbot-auto

给脚本一个执行位:

sudo chmod +x /usr/local/bin/certbot-auto

运行certbot-auto --version命令检查所安装的版本:

$ certbot-auto --version

certbot 0.33.1

当要求确认依赖项的安装时,回答“yes”,如下图:

配置JFrog Artifactory的方法:使用Nginx反向代理和加密SSL

 

三、请求让我们加密SSL Certiticate

你需要为JFrog Artifactory服务器的域或子域使用工作DNS,例如artifactory.example.com。

还需要打开80端口才能获取证书,但前提是服务器有活动的防火墙:

1、CentOS/Fedora/RHEL平台:

$ sudo firewall-cmd --add-service={http,https} --permanent

$ sudo firewall-cmd --reload

2、Ubuntu/Debian平台:

$ sudo ufw allow proto tcp from any to any port 80,443

$ sudo ufw status

参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程

完成后,获取Let的加密证书:

export DOMAIN="artifactory.example.com"

export ALERTS_EMAIL="webmaster@example.com"

sudo systemctl stop nginx

sudo /usr/local/bin/certbot-auto certonly --standalone -d $DOMAIN --preferred-challenges http --agree-tos -n -m $ALERTS_EMAIL --keep-until-expiring

输出信息如下:

配置JFrog Artifactory的方法:使用Nginx反向代理和加密SSL

 

四、配置Nginx

创建一个Nginx配置文件:

sudo vim /etc/nginx/conf.d/artifactory.conf

粘贴到文件下方:

server {

listen 80;

server_name artifactory.example.com;

return 301 https://$host$request_uri;

}

server {

listen 443 ssl;

server_name artifactory.example.com;

access_log /var/log/nginx/artifactory.jfrog.com-access.log;

error_log /var/log/nginx/artifactory.jfrog.com-error.log;

ssl_certificate /etc/letsencrypt/live/artifactory.example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/artifactory.example.com/privkey.pem;

rewrite ^/$ /artifactory/webapp/ redirect;

rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect;

chunked_transfer_encoding on;

client_max_body_size 0;

if ($http_x_forwarded_proto = '') {

set $http_x_forwarded_proto  $scheme;

}

location / {

proxy_read_timeout  900;

proxy_pass_header   Server;

proxy_cookie_path   ~*^/.* /;

if ( $request_uri ~ ^/artifactory/(.*)$ ) {

proxy_pass          http://127.0.0.1:8081/artifactory/$1;

}

proxy_pass         http://127.0.0.1:8081/artifactory/;

proxy_set_header    X-Forwarded-Port  $server_port;

proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;

proxy_set_header    Host              $http_host;

proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;

}

}

用你的Artifactory服务器域替换artifactory[dot]example.com,完成更改后,验证Nginx配置文件:

$ nginx  -t

nginx:配置文件/etc/nginx/nginx.conf语法没问题

nginx:配置文件/etc/nginx/nginx.conf测试成功

如果配置已处理好,请启动nginx并将其设置为在启动时启动:

sudo systemctl restart nginx

sudo systemctl enable nginx

 

五、访问JFrog Artifactory控制中心

访问http://artifactory.example.com上的JFrog Artifactory控制中心:

配置JFrog Artifactory的方法:使用Nginx反向代理和加密SSL

如果已经配置好上面的步骤,这个时候就就可以从http重定向到https地址了:

配置JFrog Artifactory的方法:使用Nginx反向代理和加密SSL

至此,你已使用Let的加密SSL证书成功将Nginx配置为JFrog Artifactory服务器的反向代理。

 

相关主题

网站从HTTP升级成HTTPS完全配置教程

精选文章
热门文章