AzureでCoronium Cloud+Let’s Encrypt

私も利用させて頂いているMicrosoftのBizsparkには、MSDNの無料化以外にもAzureを月15000円まで無料で利用出来る、という素晴らしい特典があります。

今までは色々実験に使うばかりで仮想マシンも作っては消し、だったのですが、今回Azureに立てたサーバで実際にサービスを運用してみることにしました。それもサーバエンジン&フレームワークは超マニアックなCoronium Cloud、おまけにSSL認証はLet’s Encrypt。調べてもほぼ情報が出てこない組み合わせです(笑)

acl

その手順が以下の通りです。

1,Azureダッシュボードより仮想マシンを作成します。クラシックでない方(Virtural Machines)のメニューです。
azure1

2,OSはubuntu 14.04 LTSを選択します。
*Microsoftに確認したところ特に記述はないものの特典の対象範囲だそうです。
azure2

3,デプロイモデルはリソースマネージャーを選択します。
azure3

4,基本情報を入力します。認証の種類はSSH公開キーを選択します。SSHキー生成はputtygenを使いました。ついでにプライベートキー(.ppk)も保存しておきます。
azure4

5,仮想マシンのサイズ(スペック)の選択です。Bizsparkの月額15000円の範囲だと2番めまでは選択可能です。
azure5

6,設定です。まずパブリックIPアドレスを静的に変更します。
azure6

7,次にネットワーク・セキュリティグループに
HTTP(TCP/80)
HTTP(TCP/443)

を追加します。優先度は100から順に適当に設定します。
azure6_0
azure7

8,以上で仮想マシンの設定は終了で検証して問題がなければデプロイされます。少し時間がかかります。
azure9

ここからはsshクライアントで接続して設定します。接続先は仮想マシンのパブリックIPアドレス、ユーザはAzureで設定したユーザです。

1,サーバのタイムゾーンをAsia/Tokyoに設定します。
sudo dpkg-reconfigure tzdata

2,システム更新を行います。
sudo apt-get update
sudo apt-get upgrade

3,mercurialをインストールします。
sudo apt-get install mercurial

4,念のため/etc/hostsファイルに
127.0.1.1 ホスト名称
を追加しておきます。

5,ログインユーザにパスワードを設定します。
sudo passwd

6,rootユーザにパスワードを設定します。
sudo passwd root

7,rootユーザに切り替えます。
su –

8,coronium cloudをインストールします。
wget https://s3.amazonaws.com/install-coronium/install.sh; chmod +x install.sh; ./install.sh
*インストールが終了したら自動的に再起動されsshクライアントは切断されます。

10,再起動を待ち
http://パブリックIPアドレス/admin
でWebブラウザから接続しログイン確認します。初期状態ではユーザ名admin,パスワードcoroniumserverです。

ここからはこのサーバに設定するドメインを管理するサイト側での設定です。
*現状(2016/06/27)AzureDNSはまだ問題があり、この目的には使用出来ませんでした。

1,まずAzureのダッシュボードの仮想マシンの仮想ネットワーク/サブネットから設定に入り、DNSサーバの設定を行います。DNSサーバでカスタムDNSを選択して、ドメイン管理側のDNSサーバのIPアドレスを設定します。
azure10

2,ドメイン管理サイト側でDNSにaレコードを設定します。必要ならサブドメインの設定も行います。
a @ azureの仮想マシンのパブリックIPアドレス
a サブドメイン azureの仮想マシンのパブリックIPアドレス

3,しばらく待って
http://ドメイン/admin
でWebブラウザから接続しログイン確認します。

ここからはまたsshクライアントでの設定です。

1,Let’s Encryptをインストールします。
git clone https://github.com/letsencrypt/letsencrypt.git
cd letsencrypt
./letsencrypt-auto –help

2,一旦coronium cloudを停止します。
sudo service coronium stop

3,Let’s Encryptを実行します。
./letsencrypt-auto certonly –standalone -d 認証するドメイン

以下のメッセージが表示されれば認証は成功で、/etc以下の所定のディレクトリに証明書他が格納されます。
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/認証するドメイン/fullchain.pem.

4,Coronium Cloudのディレクトリ以下にsslディレクトリを作成します。
sudo mkdir /home/coronium/ssl

5,証明書のディレクトリへ移動します。
su –
cd /etc/letsencrypt/live/認証するドメイン/

6,証明書とプライベートキーをCoronium Cloud側へ複写します。
cp cert.pem /home/coronium/ssl/ssl.crt
cp privkey.pem /home/coronium/ssl/ssl.key

7,Coronium Cloudを起動します。
service coronium start

8,以下のコマンドを実行します。
cd /home/coronium
wget https://s3.amazonaws.com/coronium-support/ssl/ssl_config
chmod +x ssl_config
./ssl_config

9,https://認証するドメイン/admin
でWebブラウザから接続しログイン確認します。

Let’s EncryptのSSL証明書の有効期間は90日になっており、3ヶ月ごとに更新が必要ですが更新の手順はまた別の機会に。