情報があふれているので詳しくは書きませんが、
覚書として、自分のAWSインスタンスへ設定した手順を残しておきます。
0.前提
・AWS上に設置したBitnami_Redmineを利用
・あくまで個人利用なので、無料でやる
(有料の場合は認証局に証明書の発行をしてもらう必要あり)
1.いわゆるオレオレ証明書の作成
1-1.サーバー証明書の秘密鍵を作成
$ sudo /opt/bitnami/common/bin/openssl genrsa -des3 -out /opt/bitnami/apache2/conf/privkey.pem 1024
Generating RSA private key, 1024 bit long modulus
.++++++
................++++++
e is 65537 (0x10001)
Enter pass phrase for /opt/bitnami/apache2/conf/privkey.pem:
Verifying - Enter pass phrase for /opt/bitnami/apache2/conf/privkey.pem:
ここのパスワードはひとまず任意のものを設定してください。
あとで消します。
1-2.CSRを作成
$ sudo /opt/bitnami/common/bin/openssl req -new -key /opt/bitnami/apache2/conf/privkey.pem -out /opt/bitnami/apache2/conf/cert.csr
Enter pass phrase for /opt/bitnami/apache2/conf/privkey.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
ここでの注意点は2つ。
・最初の.pemパスワードは手順1−1で入力した任意のパスワードであること。
・CommonNameはサイトのFQDNであること。
※FQDN: http://www.example.com/ なら www.example.com がFQDN
他は割と適当でいいです。
1-3.パスワードを外した証明書を作成
$ sudo /opt/bitnami/common/bin/openssl rsa -in /opt/bitnami/apache2/conf/privkey.pem -out /opt/bitnami/apache2/conf/server.key
Enter pass phrase for /opt/bitnami/apache2/conf/privkey.pem:
writing RSA key
パスワードは手順1−1で(ry
1-4.自己署名証明書を作成
$ sudo /opt/bitnami/common/bin/openssl x509 -in /opt/bitnami/apache2/conf/cert.csr -out /opt/bitnami/apache2/conf/server.crt -req -signkey /opt/bitnami/apache2/conf/server.key -days 365
Signature ok
subject=/C=/ST=/L=/O=/CN=
Getting Private key
2.apacheの設定
bitnamiのRedmineでは実はすでにhttps接続できるようになっているため、
この設定は不要です。(再起動は必要です!)
一応メモとして残しておきます。
$ vi [apache]/conf/httpd.conf
[Include conf/extra/httpd-ssl.conf]を追加
最後に再起動だけしておきましょう。
$ service httpd restart
bitnami_redmine の場合は
$ service bitnami restart
3.ブラウザへ設定
このままでもhttps接続は可能ですが、
認証局では認証されていないので「危険よ!」と言われます。
(それでも続けて表示させることは可能です)
URLの横に「×」が付いてしまうので見栄えが悪い。
ですが、回避する方法があります。
3-1.作成した自己証明証明書をPCへ移す
手段はなんでもよいです。
今回の手順でいいますと server.crt がそれにあたります。
一例ですが、AWS上のserver.crtをcatで出力した後、
内容をコピーしてローカルPC内に同じ内容のファイルを作成してもよいです。
3-2.使用しているブラウザから認証設定を行う
これは各個人によりますが、私はChromeなのでここらへんを見ました。
設定 > 詳細な設定 > HTTPSとSSL > ファイル > 読み込み
作成した自己認証証明書を指定後、追加されていることを確認
追加された証明書を選択し、認証を「常に許可」に変更
3-3.https接続して確認
「×」がついてないことを確認しましょう!
x.AWSでhttp接続ポートと閉じる
該当インスタンスのセキュリティグループを選択し、
インバウンドからポート40(HTTP)を消します。
http://xxx でアクセスできないことだけ確認しておきましょう。
x.外部サービスと連携している場合の注意事項
例えば私の場合、RedmineとBitbucketが連携されており、
BitbucketにコミットするとRedmineにPOSTされていました。
そのときに「http〜」のURLを使っていたため、
「https〜」に変更する必要がありました。
こういったケースではhttpの口を閉じることで全く動かなくなるので、注意が必要です。