こんにちは、ひろかずです。
検証のために3ヶ月くらいSSL証明書を使いたくなったので、仮のメールサーバを立てて認証メールを受け取れるようにした時のメモです。
ちなみに、こちらから3ヶ月のテスト用SSL証明書を取得できます。
#前提
- Publicに引けるドメインを所有していること。
- ドメインの管理をRoute53で行っていること。
- ドメインを管理しているRoute53の管理権を有していること。
- 証明書取得用のCSRを用意していること。
#工程
- 仮のメールサーバ設定
- AWS側の設定
- 動作確認
- 認証メール取得
- 後片付け
#1. 仮のメールサーバ設定
##1-1. Instance起動
今回は、suz-lab_centos-core-6.5.1(ami-99107d98)を使いました。
Postfixが既にインストールされてて楽ちんです。
##1-2. main.cfの設定
外からのメールを受信できる用にmain.cfに以下変更を加えます。
※ mydomain.comを実際のドメインに置き換えてください。
83 #mydomain = domain.tld
84 mydomain = mydomain.com
:
114 #inet_interfaces = all
115 inet_interfaces = all
:
166 #mydestination = $myhostname, localhost.$mydomain, localhost
167 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
:
421 home_mailbox = Maildir/
postfixを再起動して、ポートのListen状況を確認します。
# service postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
# netstat -luntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
:
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 9109/master
:
##1-3. 受信ユーザの作成
承認メールアドレスは、 admin@mydomain.com
宛に送信するので、 admin
ユーザを作成します。
# useradd -s /sbin/nologin admin
ユーザが作成されてますね。
# getent passwd | grep admin
admin:x:500:500::/home/admin:/sbin/nologin
#2. AWS側の設定
##2-1. Aレコード、MXレコードの作成
以下のようにAレコードとMXレコードを作成します。
IPアドレスは、1-1で起動したInstanceのEIPを設定して下さい。
##2-2. Security Groupの開放(動作確認用)
送信元IPアドレスを絞って開放します。
#3. 動作確認
telnetコマンドでメールを送って、届くことを確認します。
$ telnet mydomain.com 25
Trying xxx.xxx.xxx.xxx...
Connected to mydomain.com.
Escape character is '^]'.
220 ip-xxx-xxx-xxx-xxx.mydomain.com ESMTP
helo fnifni
250 ip-xxx-xxx-xxx-xxx.mydomain.com
mail from:<test@test.com>
250 2.1.0 Ok
rcpt to:<admin@mydomain.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: smpt test
Hi! This is test.
.
250 2.0.0 Ok: queued as 874C9103B
quit
221 2.0.0 Bye
Connection closed by foreign host.
送信メールは、adminユーザの配下に着信してます。
# pwd
/home/admin/Maildir/new
# ll
合計 4
-rw------- 1 admin admin 312 1月 17 13:28 2016 1453004889.Vca41I6021aM742403.ip-xxx-xxx-xxx-xxx
# cat 1453004889.Vca41I6021aM742403.ip-xxx-xxx-xxx-xxx
Return-Path: <test@test.com>
X-Original-To: admin@mydomain.com
Delivered-To: admin@mydomain.com
Received: from fnifni (unknown [xxx.xxx.xxx.xxx])
by ip-xxx-xxx-xxx-xxx.mydomain.com (Postfix) with SMTP id 874C9103B
for <admin@mydomain.com>; Sun, 17 Jan 2016 13:27:46 +0900 (JST)
Subject: smpt test
Hi! This is test.
#4. 認証メール取得
##4-1. Security Groupの開放(承認メール取得用)
ポート25を一時的に開放します。
今回は、こちらからSSL証明書を取得しました。
CSRを設定してメールの宛先に admin@mydomain.com
を指定すると、
メールが届きましたね。
# ll
合計 12
-rw------- 1 admin admin 312 1月 17 13:28 2016 1453004889.Vca41I6021aM742403.ip-xxx-xxx-xxx-xxx
-rw------- 1 admin admin 7330 1月 17 14:57 2016 1453010242.Vca41I6021dM133810.ip-xxx-xxx-xxx-xxx
中身を見ると以下箇所がありました。
# cat 1453010242.Vca41I6021dM133810.ip-xxx-xxx-xxx-xxx
Return-Path: <no_reply_support@trust-provider.com>
X-Original-To: admin@mydomain.com
Delivered-To: admin@mydomain.com
:
To permit the issuance of the certificate please browse to
https://secure.comodo.net/products/EnterDCVCode?orderNumber=xxxxxxxx
and enter the following "validation code":
hogehoge...
:
承認URLアドレスにアクセスして、validation codeを入力すると、承認完了です。
#5. 後片付け
以下設定を削除して、完了です。
- 開放したSecurity Group設定
- 追加したAレコード、MXレコード
- 仮設Instanceのterminate
#最後に
この手法は、認証方式が メール認証
のみ(主に激安SSL)で、SSL証明書を取得対象ドメインでメールサーバを保有していないケースでも使える手法です。
激安SSLは管理や保守、サポートの観点で かなりの割り切り
が必要ですで、商用サイトで激安SSLを取得する時は、信頼できるところから購入することをお勧めします。
以上で作業は完了です。
お疲れ様でした。