jenkins在AWS中从80重定向到443

时间:2017-11-22 03:22:02

标签: amazon-web-services jenkins

我刚刚在AWS中安装了Jenkins EC2实例。我尝试将重定向从http配置为https(即https://myjenkins.comhttps://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/)。我是在AWS还是在Jenkins中配置?我只找到了https://docs.saltstack.com/en/latest/topics/blackout/index.html,但没有多大帮助。请指教。感谢

2 个答案:

答案 0 :(得分:1)

如果您尝试访问端口443上的jenkins Web UI,我建议使用像nginx这样的Web服务器来代理对jenkins安装的请求。这样,您可以安装一个相当普通的jenkins并处理nginx中的所有SSL配置和端口重定向(这样做更容易)。

以下是您如何完成所要求的示例大纲:

  1. 设置服务器并正常安装Jenkins,在端口8080上提供服务。
  2. 安装nginx并将其配置为代理“/”到localhost上的端口8080。
  3. 安装SSL证书。使用带有Let的加密的certbot使这一步非常简单,因为它为您处理所有SSL配置。 (请注意,要使安装正常运行,您的安全组必须允许所有流量在您进行安装时访问您的实例。一旦配置完所有,您可以使其更具限制性。您还需要一个可公开访问的URL使您的SSL证书有效)。
  4. 使用裸域访问您的站点,并查找它以转发到https。
  5. 以下是我用来在Ubuntu EC2 VM上工作的实际步骤(你可能不得不按照安装的方式哼唱,但你会得到这个想法):

    apt-get update
    apt-get upgrade -y
    apt-get install nginx -y
    cd /etc/nginx/sites-enabled/
    vim default (see config below)
    systemctl restart nginx
    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -
    echo "deb http://pkg.jenkins-ci.org/debian binary/" | tee -a /etc/apt/sources.list
    add-apt-repository ppa:webupd8team/java -y
    apt-get update
    apt-get install oracle-java8-installer -y
    apt-get install jenkins –y
    systemctl status jenkins
    cd /var/lib/jenkins/secrets/
    cat initialAdminPassword
    ufw enable
    sudo add-apt-repository ppa:certbot/certbot
    apt-get update
    apt-get install python-certbot-nginx
    ufw allow 'Nginx Full'
    ufw allow OpenSSH
    ufw status
    certbot --nginx -d jenkins.example.com
    

    您的默认nginx配置如下所示:

    server {
    listen 80 default_server;
    listen [::]:80 default_server;
    
    root /var/www/html;
    
    index index.html index.htm index.nginx-debian.html;
    
    server_name jenkins.example.com;
    location / {
        proxy_pass       http://localhost:8080;
        proxy_set_header Host      $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    }
    

    当您运行certbot --nginx -d jenkins.example.com步骤时,它还会在您的nginx配置中插入一些行来设置SLL和证书细节。

    在那之后,你应该很好!

答案 1 :(得分:0)

您需要在EC2中将Jenkins设置配置为HTTPS;

如果您在EC2前使用Load Balance,您还需要配置ELB以将端口转发到HTTPS。