本文介绍使用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”,如下图:
三、请求让我们加密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 输出信息如下:
四、配置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控制中心:
如果已经配置好上面的步骤,这个时候就就可以从http重定向到https地址了:
至此,你已使用Let的加密SSL证书成功将Nginx配置为JFrog Artifactory服务器的反向代理。
相关主题 |