====== Konfigurace aplikací ====== ===== Aplikace ===== Jira: https://jira.tool4dev.com\\ confluence: https://confluence.tool4dev.com - server dostupný jen lokálně\\ bitbucket: https://bitbucket.tool4dev.com - server dostupný jen lokálně - **test vzdáleně přes OTP**\\ bamboo: https://bamboo.tool4dev.com - server je vypnutý\\ **Pozn:** Na reverzním proxy jsou uvedeny chybně adresy pro confluence a bitbucket, proto nejsou servery dostupné z inetu. Po výpadku a opětovném nahození app. serverů nezafungoval reverzní proxy na Apache. \\ Fungovalo jen přesměrování na firewallu a veškerý provoz končil na jira.hpl.cz. Bylo nutné znovu načíst iptables a restartovat apache(nejsem si jistý pořadím). ===== Apache - obecná konfigurace pro všechny app. servery ===== apt-get install apache2 apt-get install libapache2-mod-jk a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod proxy_ajp a2enmod rewrite a2enmod mod_jk a2enmod mod_jk a2enmod ssl ===== Konfigurační soubor server.xml ===== S vyjímkou **Bitbucket** je uložen v podsložce **conf** v **HOME** složce /opt/atlassian/bamboo/current/conf server.xml Původní sekce Connecto je zneplatněná, místo ní je přidán následující kód: ====== Upgrade ====== https://confluence.atlassian.com/adminjiraserver073/upgrading-jira-applications-using-a-rapid-upgrade-method-861253101.html\\ https://www.atlassian.com/software/jira/update ===== Jira upgrade z verze 7.1 na 7.3.5 ===== Po upgrade Jira z verze 7.1 na 7.3.5 nebylo funkční připojení k web serveru přes https. Porovnáním s funkčním serverem nebylo aktivní spojení na portu 8009. V rámci upgrade nebyly přeneseny násladující soubory: ''server.conf'' a ''cacerts'' Při použití původního souboru ''server.conf'' nebyla Jira funkční(neposlouchala na portu 8009). Po postupné editaci(pokus - omyl) ''server.conf'' byla Jira zprovozněna. Soubor ''cacerts'' nyní již obsahuje root certifikáty pro cert. autoritu LetsEncrypt, takže nebylo nutné opět tyto cert nahrávat. ===== Jira upgrade z verze 7.3.6 na 7.4.0 ===== * Vypnutí serveru Jira a vytvoření zfs clone\\ ''zfs clone poolz1/VM/JIRA@2018-08-31_18.08.01--1d poolz1/VM/JIRA_clone'' na fyyickém server HPLX06 * Stažení aktuální(požadované) verze Jira\\ ''wget https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.4.0-x32.bin '' * Záloha složky conf - ''/opt/atlassian/jira/conf/'' např. do home - soubor server.xml bude nutné nahrát do nové instalace * Změna oprávnění\\ ''chmod a+x atlassian-jira-software-7.4.0-x32.bin'' * Upgrade\\ ''./atlassian-jira-software-7.4.0-x32.bin''\\ Postupujte podle pokynů(pokud se při upgrade použije zfs clone, není potřeba provádět zálohu Jira) * Po provedení upgrade Jira nakopírujte zpět soubor ''server.xml'' ze zálohy(ideálně překopírovat nový soubor jako ''server.xml.orig'' a ze zálohy nakopírovat původní ''server.xml'') * Spustit Jira příkazem ''/etc/init.d/jira start'' * Otestovat funkčnost * Po odsouhlasení Jardy provést ''zfs promote''\\ ''zfs promote poolz1/VM/JIRA_clone'' dále pak přejmenovat souborový systém\\ ''zfs rename poolz1/VM/JIRA_clone poolz1/VM/JIRA'' ===== Jira upgrade z verze 7.4.0 na 7.6.0 - obecný postup ===== Postup je stejný jako u předešlého upgrade. Poslední upgrade byl proveden z verze **7.3.6** na **7.4.0** a pak po dvo verzích az na **7.12.0** ===== Bamboo ===== Postup: https://confluence.atlassian.com/bamboo/bamboo-upgrade-guide-720411366.html\\ Umístění důležitých složek a souborů: https://confluence.atlassian.com/bamboo/locating-important-directories-and-files-289277247.html\\ Upgrade z verze: 5.11.1.1 \\ '''' directory: ''/opt/atlassian/bamboo/current''\\ '''' directory: ''/var/atlassian/application-data/bamboo''\\ Upgrade byl testován na kopii produkčního stroje\\ ''dd if=/dev/zvol/poolz1/VM/BAMBOO of=/dev/zvol/poolz1/VM/BAMBOO01'' Kopie zařízení BAMBOO01 byla přimountována(pomocí příkazu kpartx). Následně změněna statická IP adresa(soubor interfaces)\\ ''kpartx -av /dev/zvol/poolz1/VM/BAMBOO01''\\ ''mount /dev/mapper/BAMBOO01p1 /mnt/bamboo/''\\ ''umount /mnt/bamboo''\\ ''kpartx -dv /dev/zvol/poolz1/VM/BAMBOO01''\\ ===== Certifikáty LE pro novou doménu ===== /root/.acme.sh/acme.sh --issue -d jira.hpl.cz -d jira.griffteam.com -d jira.griffteam.cz -d jira.tool4dev.com -d www.tool4dev.com -w /home/letsencrypt/webroot/ --force /root/.acme.sh/acme.sh --issue -d bamboo.hpl.cz -d bamboo.tool4dev.com -w /home/letsencrypt/webroot/ --force /root/.acme.sh/acme.sh --issue -d bitbucket.hpl.cz -d bitbucket.tool4dev.com -d git.tool4dev.com -w /home/letsencrypt/webroot/ --force /root/.acme.sh/acme.sh --issue -d confluence.hpl.cz -d confluence.tool4dev.com -w /home/letsencrypt/webroot/ --force ==== Obnova certifikátů ==== /root/.acme.sh/acme.sh --renew -d jira.hpl.cz -d jira.griffteam.com -d jira.griffteam.cz -d jira.tool4dev.com -d www.tool4dev.com -w /home/letsencrypt/webroot/ --force /root/.acme.sh/acme.sh --renew -d bamboo.hpl.cz -d bamboo.tool4dev.com -w /home/letsencrypt/webroot/ --force ==== Skript pro obnovu a synchronizaci certifikátů ==== #! /bin/sh /root/.acme.sh/acme.sh --renew -d bamboo.hpl.cz -d bamboo.tool4dev.com -w /home/letsencrypt/webroot/ --force rsync -avz -e "ssh -i /root/.ssh/id_rsa" /root/.acme.sh/bamboo.hpl.cz/bamboo.hpl.cz.cer snemec@mail.hpl.cz:/home/snemec/Certs /etc/init.d/apache2 restart ssh snemec@mail.hpl.cz 'sudo /etc/init.d/apache2 restart' ====== Virtuální servery ====== ===== Certifikáty ===== Popis fungování ověření na základě certifikátů od LE.\\ Certifikáty se používají pro konfiguraci přístupu k web rozhraní serverů přes protokol https. \\ Dále se používají k získání vztahu důvěry mezi jednotlivými servery. Hlavně mezi Bitbucket a JIRA.\\ Kde JIRA je ověřovatel.\\ S webovým rozhranním nebyl problém, ale docházelo k problémům s ověřením mezi servery, konkrétně mez Bitbucket a JIRA.\\ Problém byl když došlo k vydání certifikátů jinou mezilehlou (intermediate) certifikační autoritou(LE R10 - R13), pro konkrétní servery.\\ Pak docházelo k nesouladu mezi servery, protože např. pro Bitbucket vyl cert. vydán R11, ale pro JIRA byl vydán R13. To nemá vliv na https přístup, ale mělo to vliv na komunikaci mezi servery, protože CA certifikát pro konkrétní CA(R10 - R13) se ukládá do JAVA truststoru.\\ Po konzultaci s AI(Provozuji starší java aplikaci, do které musím ručně registrovat CA klíč. Rotace mezi R10 - R13 mi způsobuje problémy. Lze to řešit např. jedním CA souborem, který bude obsahovat všechny CA klíče?) jsem um9stil do JAVA truststoru ISRG Root X1 certifikát. Tomuto certifikátu by měly důvěřovat všechny mezilehlé (intermediate) certifikační autority(LE R10 - R13). Cert. jsem umístil **20.10.2025** ===== Jira ===== https://jira.tool4dev.com **Restart serveru**\\ /etc/init.d/jira start|stop Test, že Jira poslochá na odpovídajících portech\\ netstat -anp|grep java|more tcp6 0 0 127.0.0.1:8005 :::* LISTEN 6815/java tcp6 0 0 :::8009 :::* LISTEN 6815/java tcp6 0 0 :::8080 :::* LISTEN 6815/java tcp6 0 0 :::8443 :::* LISTEN 6815/java tcp6 32 0 192.168.10.58:59362 104.192.142.44:443 CLOSE_WAIT 6815/java tcp6 1 0 192.168.10.58:34039 192.168.10.61:443 CLOSE_WAIT 6815/java tcp6 0 0 127.0.0.1:41047 127.0.1.1:3306 ESTABLISHED 6815/java tcp6 1 0 192.168.10.58:45184 192.168.10.60:443 CLOSE_WAIT 6815/java tcp6 1 0 192.168.10.58:33990 192.168.10.61:443 CLOSE_WAIT 6815/java tcp6 32 0 192.168.10.58:59366 104.192.142.44:443 CLOSE_WAIT 6815/java tcp6 0 0 127.0.0.1:40986 127.0.1.1:3306 ESTABLISHED 6815/java tcp6 0 0 127.0.0.1:40953 127.0.1.1:3306 ESTABLISHED 6815/java Vystavení certifikátu od cert. autority Let's Encrypt pomocí skriptu acme.sh https://github.com/Neilpang/acme.sh\\ Při vydávání certifikátu je použitý mód **web root**. Na straně web serveru musí být na portu 80 dostupný adresář s **právy zápisu**.\\ Původně byl Jira server dostupný jen na portu 443. V konfiguraci apache byl nastaven redirect z portu 80 na port 443\\ Veškeré dotazy na portu 80 jsou přesměrovány na port 443, kromě ''http://jira.hpl.cz/.well-known/'' Alias /.well-known/ /home/letsencrypt/webroot/.well-known/ AllowOverride None Require all granted Satisfy Any RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{REQUEST_URI} !^/.well-known/ RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] #RewriteLog /var/log/rewrite.log #RewriteLogLevel 3 #RedirectPermanent / "https://jira.hpl.cz/" IfModule mod_ssl.c> # # Order deny,allow # Allow from all # ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined SSLEngine on SSLProxyEngine on ProxyPreserveHost on ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ SSLProxyCheckPeerCN off SSLCertificateFile /etc/ssl/certs/jira.hpl.cz.cer SSLCertificateKeyFile /etc/ssl/private/jira.hpl.cz.key SSLCACertificateFile /etc/ssl/certs/ca.cer #SSLCertificateFile /etc/ssl/certs/jira.hpl.cz.cer #SSLCACertificateFile /etc/ssl/certs/Intermediate_CA_chain.cer #SSLCertificateKeyFile /etc/ssl/private/jira.hpl.cz.key SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 ==== Jira - konfigurace reverzního proxy ==== ServerName jira.hpl.cz ServerAlias jira.griffteam.com jira.griffteam.cz ProxyPreserveHost On ProxyRequests off ProxyPass / http://192.168.10.58/ ProxyPassReverse / http://192.168.10.58/ ServerName jira.hpl.cz ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined SSLEngine on SSLProxyEngine on ProxyPreserveHost on ProxyPass / https://192.168.10.58/ ProxyPassReverse / https://192.168.10.58/ SSLProxyCheckPeerCN off SSLCertificateFile /etc/ssl/certs/jira.hpl.cz.cer SSLCACertificateFile /etc/ssl/certs/ca.cer SSLCertificateKeyFile /etc/ssl/private/jira.hpl.cz.key SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 ==== Jira - ověření na základě LE certifikátů ==== 09.07.2024 - problém s přihlášenímm na Confluence a Bitbucket(Bamboo je trvale vypnutý).\\ Problém se podařilo vyřešit obnovením uložiště na Jira - viz popis níže a registrací ca.cer na Bitbucket a Confluence.\\ **Na Confluence a Bitbucket musí být importován stejný ca.cer jako na Jira(konkrétně R11)** {{:private:zakaznici:hpl:pasted:20240709-162035.png}} Po změně root LE Certifikátů přestalo fungovat přihlášení k Bitbucket, Confluence i Bambo.\\ Bylo potřeba znovu nahrát nový CA root certifikát na všechny servery. Po instalaci certifikátů od Let's Encrypt byl sever dostupný přes webové rozhranní, ale přestal komunikovat s ostatními servery(bamboo, confluence, bitbucket). Application Links byl offline.\\ Na serveru Jira bylo nutné vložit certifikát cert. autority do souboru cacerts. Při manipulaci s certifikáty je nutné zadat heslo k uložišti, pro cacerts i jks uložiště je použité defaultní heslo ''changeit'' ==== Import root certifikátu cert autority do uložiště cacerts ==== /opt/atlassian/jira/jre/bin/keytool -import -alias letsencrypt -keystore /opt/atlassian/jira/jre/lib/security/cacerts -file /root/.acme.sh/jira.hpl.cz/ca.cer Pokud již existuje alias existuje alias ''letsencrypt'' - (''keytool error: java.lang.Exception: Certificate not imported, alias already exists'') Je potřeba ho smazat a provést import znovu. /opt/atlassian/jira/jre/bin/keytool -delete -alias letsencrypt -keystore /opt/atlassian/jira/jre/lib/security/cacerts ==== Import pfx certifikátu do jks uložiště ==== Dále je potřeba vytvořit pxf soubor a naimportovat ho do JKS uložiště. === Vytvoření pfx souboru === Ve složce kde se generují nové certifikáty - ''/root/.acme.sh/jira.hpl.cz/'' jsem vytvořil složku ''pfx''.\\ Do této složky jsem nakopíroval soubory: -rw-r--r-- 1 root root 1586 Dec 7 00:05 ca.cer -rw-r--r-- 1 root root 1939 Dec 7 00:05 jira.hpl.cz.cer -rw-r--r-- 1 root root 1675 Jan 11 2017 jira.hpl.cz.key Pro vygenerovaný pfx soubor je potřeba zadat heslo pro export - je jedno jaké heslo se použije. Slouží jen pro import od uložiště.\\ cd /root/.acme.sh/jira.hpl.cz/pfx openssl pkcs12 -export -out jiraletscert.pfx -inkey jira.hpl.cz.key -in jira.hpl.cz.cer -certfile ca.cer === Import pfx do jks uložiště === Při importu do jks uložiště je potřeba zadat ''destination keystore password'' - použil jsem ''changeit''\\ Dále je potřeba zadat ''Enter source keystore password:'' - heslo použité při generaci pfx souboru. cd /root/.acme.sh/jira.hpl.cz/pfx /opt/atlassian/jira/jre/bin/keytool -importkeystore -srckeystore jiraletscert.pfx -srcstoretype pkcs12 -destkeystore jira.jks -deststoretype JKS === Import certifikátu cert autority do jks uložiště === cd /root/.acme.sh/jira.hpl.cz/pfx /opt/atlassian/jira/jre/bin/keytool -import -alias rootCA -keystore jira.jks -trustcacerts -file ca.cer cp -a jira.jks /var/atlassian/application-data/jira/ Ověření - výpis uložených certifikátů v jks uložišti.\\ /opt/atlassian/jira/jre/bin/keytool -list -keystore /var/atlassian/application-data/jira/jira.jks Enter keystore password: Výpis by pak měl vypadat následovně: Keystore type: JKS Keystore provider: SUN Your keystore contains 2 entries rootca, Jan 14, 2017, trustedCertEntry, Certificate fingerprint (SHA1): E6:A3:B4:5B:06:2D:50:9B:33:82:28:2D:19:6E:FE:97:D5:95:6C:CB 1, Jan 14, 2017, PrivateKeyEntry, Certificate fingerprint (SHA1): 81:11:2D:04:47:0B:7B:78:63:85:FC:8D:7A:83:39:FC:18:10:52:EE Ve výpisu by měla být jedna položka ''trustedCertEntry'' a jedna položka ''PrivateKeyEntry''\\ Oba výpisy musí mít stejné datum.\\ Na ostatních serverech(Bamboo, Bitbucket, Confluence) vložit ca.cer do souboru cacerts, postup je podobný jako pro Jiru.\\ #Bitbucket /opt/atlassian/bitbucket/4.4.1/jre/bin/keytool -delete -alias letsencrypt -keystore /opt/atlassian/bitbucket/4.4.1/jre/lib/security/cacerts /opt/atlassian/bitbucket/4.4.1/jre/bin/keytool -import -alias letsencrypt -keystore /opt/atlassian/bitbucket/4.4.1/jre/lib/security/cacerts -file /root/.acme.sh/bitbucket.hpl.cz/ca.cer #Confluence /opt/atlassian/confluence/jre/bin/keytool -delete -alias letsencrypt -keystore /opt/atlassian/confluence/jre/lib/security/cacerts /opt/atlassian/confluence/jre/bin/keytool -import -alias letsencrypt -keystore /opt/atlassian/confluence/jre/lib/security/cacerts -file /root/.acme.sh/confluence.hpl.cz/ca.cer Po vložení certifikátů restartovat aplikace.\\ Na **Bamboo** jsou je **jks** uložiště certifikátů v jiné cestě.\\ /usr/lib/jvm/java-8-oracle/jre/bin/keytool -import -alias letsencrypt02 -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -file /root/.acme.sh/bamboo.hpl.cz/ca.cer **Ověření dostupnosti lze provést pomocí skriptu SSLPoke**\\ **Důležité je provést kontrolu připojení z Bitbucket na Jira!** https://www.netiq.com/communities/cool-solutions/cool_tools/cacerts-dummies/\\ https://www.netiq.com/communities/cool-solutions/wp-content/uploads/sites/2/2012/02/installcert-sslpoke.zip\\ Stahnout zip, rozbalit, SSLPoke.class nahrat do bin(/opt/atlassian/jira/jre/bin) bitbucket:/opt/atlassian/bitbucket/4.4.1/jre/bin# ./java SSLPoke jira.hpl.cz 443 Successfully connected root@jira:/opt/atlassian/jira/jre/bin# ./java SSLPoke jira.hpl.cz 443 Successfully connected Dostupnost(Application Links) lze kontrolovat jak lokálně na Jira serveru, tak mezi servery.\\ ===== Confluence ===== https://confluence.tool4dev.com root@confluence:~# /etc/init.d/confluence Usage: /etc/init.d/confluence {start|stop|restart} ===== Bitbucket ===== https://bitbucket.tool4dev.com **Home složka:** /var/atlassian/application-data/bitbucket **Konfigurační soubor:** ''/var/atlassian/application-data/bitbucket/shared/server.xml'' **Spouštěcí skripty:** bitbucket:~# /etc/init.d/atlbitbucket Usage: /etc/init.d/atlbitbucket {start|stop|status} ===== Bamboo ===== https://bamboo.tool4dev.com **Home složka:** ''/opt/atlassian/bamboo/current/'' **Konfigurační soubor:** ''/opt/atlassian/bamboo/current/conf/server.xml'' **Spouštěcí skripty:** **Pozor** app Bamboo se nenastartuje po restartu serveru. Je potřeba jí spustit ručně. cd /opt/atlassian/bamboo/current/bin ./start-bamboo.sh List trusted cert. auth\\ /usr/lib/jvm/java-8-oracle/jre/bin/keytool -list -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts |grep -B1 lets