それは仕様です。

それは仕様です。

「それは仕様です。」は雑記ブログです! 主にIT関連・考えたこと・勉強したことをここに残しています。 「Re:ゼロから言語の再勉強中。」

それは仕様です。

Windows版Bitnami RedmineをインストールからSSL接続で外部接続するまでの手順まとめ

f:id:yantzn:20170322060919j:plain

どうも、やん(id:yantzn)です。

仕事でRedmineを使ってタスク管理をしている方も多いかと思います。

僕は個人でWeb・アプリ開発をしているので、個人/共同プロジェクト管理や

勉強したことをまとめるためにRedmineを自宅サーバに建てたいと思います。

 

 

 環境

 OS: Windows10 Pro

 Bitnami Redmineのインストール

 Redmineを簡単にインストール出来るオールインパッケージがあるので、

 こちらのBitnami Redmineをインストールします。

bitnami.com

 インストール方法は、こちらの記事を参考にしてください。

qiita.com

 インストールが結構長いので、気長に待ちましょう!

 インストール時に指定したポートを後から変更する。

 

f:id:yantzn:20170310232638p:plainC:\Bitnami\redmine-3.3.1-0\apache2\conf\httpd.conf

Listen 80  → Listen 8080
ServerName localhost:80 → localhost:8080

 

f:id:yantzn:20170310232638p:plainC:\Bitnami\redmine-3.3.1-0\apache2\conf\bitnami\bitnami.conf

<IfVersion < 2.3 >
  NameVirtualHost *:80 → 8080
  NameVirtualHost *:443 → 8443
</IfVersion>

<VirtualHost _default_:80 → 8080>
    : 
</VirtualHost>

Listen 443 → 8443

<VirtualHost _default_:443 → 8443>
    : 
</VirtualHost>

 

僕の場合、後からWordpressも同じ環境に構築したいのでSSLのポートも変更しました。

 他のPCからRedmineを閲覧できるようにする。

 Redmineをインストールした端末でRedmineが閲覧できる状態になっているかと思います。

 しかし、LAN内の他のPCからRedmineを閲覧することができない状態です。

 他のPCからもRedmineを閲覧できるように設定する方法はこちら

 

f:id:yantzn:20170310232638p:plainC:\Bitnami\redmine-3.3.1-0\apache2\conf\httpd.conf

ServerName localhost:8080 → 192.168.11.200:8080

【注意】バージョンやインストールディレクトリが、それぞれの環境で違うと思うので読み替えてください。

 

f:id:yantzn:20170323011301p:plain

このように表示できれば、成功です。

 

 SSL証明書を取得する。

Let's Encrypt を利用して、無償のドメイン証明用のSSL証明書を発行します。

僕の場合、ASUSルータを使用しているためASUSの提供するDDNSでSSL証明書を発行したいと思います。

Let's Encrypt Windows用クライアントソフトのダウンロード

下記のリンクからZipファイルをダウンロード・解凍します。

解凍後、僕はC:\Bitnami\redmine-3.3.1-0\apache2\letsencrypt

というフォルダを作成し、ここに配置しました。

github.com

ポートフォワードの設定をする。

このままクライアントソフトを走らせても、自宅サーバへ外部からアクセス出来ないことから、申請及び証明・発行が出来ないのでポートフォワードを設定します。

僕の場合、80番・443番でリクエストを受けたら、上記「他のPCからRedmineを閲覧できるようにする。」で記述したアドレスにフォワードするように設定しました。

ちなみに、ASUSルータでのポートフォワード設定はこちらを参考にしてください。

www.tekwind.co.jp

 

さくらVPSや既に設定済みの方は不要です。

証明書の申請

 証明書の申請方法は、こちらを参考にしてください。

 IISでLet's Encrypt を利用してSSLサイトを構築する (letsencrypt-win-simple クライアントを利用)

リンクの手順では、IISの設定方法で書かれています。

今回は、Apacheに設定したいのでリンクの手順の「証明書の確認」までを行います。

申請が完了すると、ユーザフォルダの配下に証明書一式がダウンロードされます。

C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\

【注意点】

  • 管理者権限があるコマンドラインを使用する。
  • 必ずLAN内で作業を行う。

f:id:yantzn:20170310232638p:plain管理者権限があるコマンドラインを使用する。

管理者権限があれば、何でも良いです。

僕は、Bitnami Redmine Stackで作業を行いました。

f:id:yantzn:20170310232638p:plain必ずLAN内で作業を行う。

ポケットルータからVPN接続で申請作業を行っていたのですが、何度も失敗しました。

たぶんですが、ポケットルーターのポートを開けていなかったので申請に失敗した...と思われます。

証明書の有効期限は90日なのでタイマーの設定を必ず行ってくださいね。

 

 RedmineにSSL証明書の設定

Redmineに証明書を設定していきたいと思います。 httpでリクエストが来た場合、httpsにリダイレクトするように合わせて設定します。 f:id:yantzn:20170310232638p:plainC:\Bitnami\redmine-3.3.1-0\apache2\conf\bitnami\bitnami.conf

<IfVersion < 2.3 >
NameVirtualHost *:8080
NameVirtualHost *:8443
</IfVersion>

<VirtualHost _default_:8080>
  DocumentRoot "C:/Bitnami/redmine-3.3.1-0/apache2/htdocs"
  #httpsにリダイレクト
 RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
  <Directory "C:/Bitnami/redmine-3.3.1-0/apache2/htdocs">
    : 
  </Directory>

Listen 8443

<VirtualHost _default_:8443>
DocumentRoot DocumentRoot "C:/Bitnami/redmine-3.3.1-0/apache2/htdocs"
SSLEngine on
SSLCertificateFile "C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\XXドメイン名XX-crt.pem"
SSLCertificateKeyFile "C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\XXドメイン名XX-key.pem"
SSLCertificateChainFile "C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\ca-XXXXXXX.pem"

https://ドメイン名/redmine で接続出来れば成功です。

 まとめ

いかがだったでしょうか。

Bitnami RedmineのインストールからSSLの設定・接続までいっきにまとめてみました。

どこからでも接続できる環境になったことで、共同プロジェクトや個人勉強メモを外出先からでも更新できるので満足しています。

外部からhttpsで接続できるので、セキュリティ的に安心できるかと思いますので、運用する機会があれば参考にして頂ければと思います。

最後まで読んで頂き、ありがとうございます!