LoginSignup
4
5

More than 5 years have passed since last update.

AWSインスタンスでオレオレ証明書の発行

Last updated at Posted at 2015-07-25

情報があふれているので詳しくは書きませんが、
覚書として、自分のAWSインスタンスへ設定した手順を残しておきます。

0.前提

・AWS上に設置したBitnami_Redmineを利用
・あくまで個人利用なので、無料でやる
(有料の場合は認証局に証明書の発行をしてもらう必要あり)

1.いわゆるオレオレ証明書の作成

参考1 自己証明書の作成
参考2 自己証明書が必要な理由

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の口を閉じることで全く動かなくなるので、注意が必要です。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5