出来上がった環境
Raspberry Pi 3B+
CentOS Linux release 7.5.1804 (AltArch)
Apache 2.4.6
Redmine 3.4.6
Let's Encrypt証明書
Raspberry Pi 3B+ にCentOS7導入
Redhat系の方が操作に慣れているので、このあたりを参考にCentOS7を導入
Redmine 3.4.6 の導入
このあたりを参考に Redmine 3.4.6 + PostgreSQL 9.2.24 + Apache 2.4.6 の構成でRedmine環境を構築。
「http://[ドメイン名]/redmine/」でredmineへアクセスできるようにしておく。
title
いつもは、DBをMariaDB(MySQL)にしてましたが、今回は久々に建てることもあり、参考にしたサイト通りPostgreSQLを選択。
Let's Encrypt証明書の設定
EPELリポジトリ追加
yumでは追加できなかったので、/etc/yum.repos.d/epel.repo を手動で追加
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0
あとは、このあたりを参考に証明書を取得。
# yum install epel-release
# yum install certbot python-certbot-apache
# certbot certonly --webroot -w [DocumentRoot] -d [ドメイン名]
Congratulations!とメッセージが出れば成功。
[中略]
IMPORTANT NOTES:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/[ドメイン名]/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/[ドメイン名]/privkey.pem
Your cert will expire on YYYY-MM-DD. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
一応確認してみるとこんな感じになってます。
# ls -l /etc/letsencrypt/live/[ドメイン名]/
合計 4
-rw-r--r-- 1 root root 682 M月 D hh:mm README
lrwxrwxrwx 1 root root 36 M月 D hh:mm cert.pem -> ../../archive/[ドメイン名]/cert1.pem
lrwxrwxrwx 1 root root 37 M月 D hh:mm chain.pem -> ../../archive/[ドメイン名]/chain1.pem
lrwxrwxrwx 1 root root 41 M月 D hh:mm fullchain.pem -> ../../archive/[ドメイン名]/fullchain1.pem
lrwxrwxrwx 1 root root 39 M月 D hh:mm privkey.pem -> ../../archive/[ドメイン名]/privkey1.pem
Apacheへの設定
/etc/httpd/conf.d/ssl.confを編集
あらかじめローカル証明書の設定が入っていたので下記の通り変更
# Server Certificate:
-SSLCertificateFile /etc/pki/tls/certs/localhost.crt
+SSLCertificateFile /etc/letsencrypt/live/[ドメイン名]/cert.pem
# Server Private Key:
etc.)
-SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
+SSLCertificateKeyFile /etc/letsencrypt/live/[ドメイン名]/privkey.pem
# Server Certificate Chain:
-#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
+SSLCertificateChainFile /etc/letsencrypt/live/[ドメイン名]/chain.pem
Apacheを再起動
# systemctl restart httpd
ブラウザからRedmineへアクセスして証明書を確認
https://[ドメイン名]/redmine/
発行元が「Let's Ecnrypt Authority X3」となっている。
Redmineの設定
[管理]→[設定]→[全般]のプロトコルをHTTPからHTTPSへ変更
memo
certbotで証明書取得で失敗した時は以下を確認
- OSやルータでポート開放されているか
- DocmentRootの指定があっているか
- DocmentRootへのアクセス権設定
- 何度も失敗してtoo many ~ とエラーが出た時はあきらめて、時間をおいてから実施