##2019新增
jira的線上商店marketplace在設定完轉址後始終無法連上
試了很久終於發現~是rewrite rule出錯了
以下是正確的設定,到httpd/conf.d/下面的jira設定檔
RewriteRule (.*) http://127.0.0.1:8080%{REQUEST_URI} [P,QSA] ###之前就是在[ ]標籤多了一個L,代表只要符合這條件就不再檢查,於是marketplace無法使用下面轉址回到proxy設定好的jira頁面@@
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
在設定JIRA使用https連線上
網路上的文件都是直接使用http連jira目錄的做法
reverse proxy不用照這麼多步驟
首先照certbot安裝好SSL憑證
https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-centos-7
在取得憑證的過程中,選擇強制將所有連線轉到https
這樣certbot會幫apache產生一個XX-le-ssl.conf的設定檔
自動開啟Rewrite功能並把ssl憑證檔案路徑加上去
接下來,在原本80轉8080的reverse proxy設定檔那邊
把原本引導轉埠的設定註解取消,只留下設定讀取權限的部分
<VirtualHost *:80>
ServerName jira.teliclab.info
ProxyRequests Off
ProxyVia Off
<Proxy *> Require all granted </Proxy>
##註解掉原本的reverse proxy 設定 ##
RewriteEngine on
RewriteCond %{SERVER_NAME} =jira.teliclab.info
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
##注意apache2.2沒有[END]參數,建議改成
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
##
完成後重啟apache就可以了
apachectl restart
原本以為這樣就結束了!
沒想到jira的server.xml要改正,否則jira會說你不適用https連線的畫面
然後使用者登入就看不到動態牆@@
但是很重要的是! 一定要等jira完全關閉才能更改server.xml
否則無法載入修改後的設定值喔!
先到/opt/atlassian/jira/bin/使用sh腳本(stop-jira.sh&shutdown.sh)關閉jira
或用/etc/init.d/jira stop
執行完其實jira並沒有關閉,還留著一個pid
建議用jiraForceShutdownScript1.sh + jiraForceShutdownScript2.sh再執行一次
最後再用ps -aux | grep 'jira'檢查,確定完全沒有任何jira程序在執行(jira會連結mysql所以mysql還會看到jira字眼,不用理會)
完全停止jira後
到/opt/atlassian/jira/conf修改server.xml檔案,參考官方文件
重點是把scheme, proxyname, proxyport改對
scheme="https" proxyName="yuor proxy server hostname" proxyPort="443"
存檔後就是要重新啟動jira
我試了很多種方法,最後發現直接用/opt/atlassian/jira/bin下面的startup.sh最直接
這樣才是真的完成了Orz
接下來取得了SSL正式憑證
有二個檔案必須修改,先將jira服務停止
1.apache的ssl.conf,告訴apache如何取得憑證檔案
SSLCertificateFile /etc/pki/tls/certs/server.cer ###domain name通過ssl憑證
SSLCertificateKeyFile /etc/pki/tls/private/privatekey2019.key ###CA發的私鑰
SSLCertificateChainFile /etc/pki/tls/certs/uca.cer ###CA發的chain
SSLCACertificateFile /etc/pki/tls/certs/root.cer ###CA發的根網域憑證
2.產生java用的jks匯入java (但做完我的jira還是沒有通過一些SSL檢測網站的java程式SSL測試@@)
###引入root uca server紀錄加到jks檔
1./opt/atlassian/jira/jre/bin/keytool -import -trustcacerts -alias rootca -keystore /opt/atlassian/jira/jre/lib/security/jira2019.jks -file /home/jung915/jira_ssl/root.cer
cat root.cer uca.cer > all.crt
openssl pkcs12 -export -chain -in server.cer -inkey privatekey.key -out jira2019.p12 -name jira2019 -CAfile all.crt
/opt/atlassian/jira/jre/bin/keytool -importkeystore -destkeystore /opt/atlassian/jira/jre/lib/security/jira2019.jks -srckeystore jira2019.p12 -alias jira2019
因為用p12製作jks的時候,會問你alias已經存在,是否要覆蓋
所以我認為正確解法應該是前面1-3引入憑證檔的步驟不需要了
直接產生p12檔然後做成jks匯入jira就可以
預設password: changeit
3.修改server.xml裡面keystore指定jks檔案的位置
最後重新啟動jira