Im ersten Teil haben wir unsere Ubuntu VW erstellt und JFrog Container Registry installiert. In diesem Teil erstellen wir einen Reverse Proxy und richten LetsEncrypt ein.
Index
Die JFrog Container Registry ist ein Repository-Manager, der Docker- und Helm-Registrierungen und generische Repositorys unterstützt, so dass Sie Ihre Container-Images erstellen, bereitstellen und verwalten können.
JFrog Container Registry kommt mit einer einfach zu bedienenden UI, mit einer erweiterten Ansicht und Suchfunktionen für Images. Eine leistungsstarke REST-API kann verwendet werden, um Images zu pushen, zu ziehen und einfach zu verwalten.
JFrog Container Registry ist als selbst gehostete (Freemium) oder SaaS-Lösung verfügbar und unterstützt private und öffentliche Docker-Images, Helm Charts und generische Repositorys. Der interne Berechtigungsmechanismus hilft DevOps-Teams bei der Entscheidung, wer auf was zugreifen darf, mit einer feinkörnigen Zugriffskontrolle.
Voraussetzungen
– Ubuntu VM mit SSH Zugriff (Teil1)
– JFrog Container Registry installiert (Teil 1)
– Registrierter Domain Name und eine Weiterleitung an unsere VM
Installieren von NGINX
System updaten
Als Erstes aktualisieren wir unser System, apt-get update liest die Paketlisten neu ein und apt-get upgrade führt dabei die eigentliche Aktualisierung durch:
1 |
sudo apt-get update -y<br>sudo apt-get upgrade -y |
NGINX installieren und als Reverse Proxy konfigurieren
Als Nächstes müssen Sie Nginx als Reverse-Proxy für JFrog konfigurieren. Installieren wir zunächst den Nginx-Webserver mit dem folgenden Befehl und eine neue Nginx-Konfigurationsdatei für den virtuellen Host.
1 |
sudo apt-get install nginx -y<br>sudo nano /etc/nginx/sites-available/jfrog.conf |
In die Konfigurationsdatei kopieren wir vorerst folgende Zeilen und passen den Domain Namen an.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
upstream jfrog { server 127.0.0.1:8082 weight=100 max_fails=5 fail_timeout=5; } server { listen 80; server_name jfrog.domain-name.de; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://jfrog/; } } |
Anschließend schließen und speichern wir die Datei. Mit folgendem Befehl erstellen wir eine Verlinkung zu unserer Konfiguration.
1 |
sudo ln -s /etc/nginx/sites-available/jfrog.conf /etc/nginx/sites-enabled/ |
Überprüfen wir als nächstes NGINX mit dem folgenden Befehl auf Syntaxfehler.
1 |
sudo nginx -t |
Die Ausgabe sollte so aussehen:
Starten wir schließlich den NGINX-Dienst neu, um die Änderungen zu implementieren:
1 |
sudo systemctl restart nginx |
JFrog mit Let’s Encrypt SSL
Es wird empfohlen, JFrog mit SSL zu sichern. Wir nutzen Let’s Encrypt hierfür. Fügen wir also zunächst das Certbot-Repository mit folgenden Befehlen hinzu.
1 |
sudo apt-get install software-properties-common -y<br>sudo add-apt-repository ppa:ahasenack/certbot-tlssni01-1875471 |
Aktualisieren wir dann das Repository und installieren den Certbot-Client.
1 |
sudo apt-get update -y<br>sudo apt-get install certbot python3-certbot-nginx -y |
Sobald der Certbot-Client installiert ist, führen wir den folgenden Befehl aus, um Let’s Encrypt für unsere Website herunterzuladen und zu installieren.
1 |
certbot --nginx -d jfrog.domain-name.de |
Nun werden wir gebeten, unsere E-Mail Adresse anzugeben und die Bedingungen zu akzeptieren. Im zweiten Schritt geben wir 2 an.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter ‚c‘ to
cancel): dennis.rupp@firstattribute.com– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
(A)gree/(C)ancel: A
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let’s Encrypt project and the non-profit
organization that develops Certbot? We’d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for jfrog.domain-name.de
Waiting for verification…
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/jfrog.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Select the appropriate number [1-2] then [enter] (press ‚c‘ to cancel): 2
Nun ist unser JFrog Container Repository unter https://jfrog.domain-name.de erreichbar.
Jetzt richten wir noch einen Cron Job ein, damit unser Zertifikat auch gültig bleibt. Dieses machen wir wieder als „root“.
1 |
sudo -s<br>crontab -e |
In der letzten Zeile fügen wir nun folgenden Eintrag hinzu:
40 3 * * 0 letsencrypt renew >> /var/log/letsencrypt-renew.log && /etc/init.d/nginx reload > /dev/null 2>&1
Im nächsten Teil erstellen wir unser erstes Docker Repository.
Referenzen:
https://community.letsencrypt.org/
https://letsencrypt.org/
Unterstützung benötigt?
Gerne stellen wir Ihnen unsere Leistungen und Lösungen in einem persönlichen Gespräch vor und würden uns über Ihre Kontaktaufnahme sehr freuen!
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>