imotenのTLS設定を使う方法

 

imotenの設定全般はくずのは探偵事務所さんのサイトが詳しいのでそちらを見てくださいね。

いままで、imotenの送信設定はstunnelを使ってSSL化したsmtpsにしていましたが、なにぶんメモリの少ないDTIのVPSなんで少しでもプロセスを減らして節約したい。
そこで、stunnelの利用をやめてimoten標準機能のTLS設定を使ってみることに。
基本的に、imotenの設定はくずのはさんのところにならっています。

秘密鍵の作成

まずは、VPSにログインしてsuでrootになる。

[root@ ~]# cd /etc/pki/tls/certs でcertsディレクトリに移動
[root@ certs]# make imotentls.key で秘密鍵作成

作成中にパスフレーズを聞かれるので自分で考えて入力

Enter pass phrase: (入力しても見えない)
Verifying - Enter pass phrase:(入力しても見えない)
(確認なのでもう一度同じパスフレーズを入力してください)

秘密鍵ファイルimotentls.keyができました。

証明書の作成(ただしオレオレ証明書)

[root@ certs]# make imotentls.crt で証明書作成

秘密鍵のパスフレーズを聞かれるので入力

Enter pass phrase for imotentls.key:(入力しても見えない)

引き続き証明書作成に必要な項目を聞かれるので入力
(なにも入れなくてEnter繰り返しでもOK)

Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Osaka
Locality Name (eg, city) [Newbury]:Daito
Organization Name (eg, company) [My Company Ltd]:todotantan
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:todotan.com
Email Address []:

証明書ファイルimotentls.crtができました。

PKCS#12形式に変換

作った秘密鍵+証明書をimotenが扱えるPKCS#12形式に変換します

[root@ certs]# openssl pkcs12 -export -inkey imotentls.key -in imotentls.
 crt -out imotentls.p12

秘密鍵のパスフレーズを聞かれるので入力

Enter pass phrase for imotentls.key:(入力しても見えない)

PKCS#12形式のファイルのパスワードを決めます。(imoten.ini内で使用)

Enter Export Password:(入力しても見えない)
Verifying - Enter Export Password:(入力しても見えない)
(確認なのでもう一度同じパスワードを入力)

以上で秘密鍵と証明書を統合したPKCS#12形式のimotentls.p12ができました。

秘密鍵・証明書・PKCS#12形式のファイルは大事なのでroot以外から触れないようにしておきます。

[root@ certs]# chmod 400 imotentls.*

ちなみに正規に発行された証明書がある場合は以下のコマンドでPKCS#12形式に変換します。

[root@ certs]# openssl pkcs12 -export -inkey <秘密鍵> -in <証明書> -certfile <中間証明書> -out imotentls.p12

imoten.iniの編集

続いてimoten.iniの設定を編集します。

[root@ certs]# cd /usr/local/imoten でimotenディレクトリに移動

imoten.iniのバックアップをとります。

[root@ imoten]# cp imoten.ini imoten.ini.bak

imoten.iniを編集します。

[root@ imoten]# vi imoten.ini

送信設定を以下の通りにします

sender.smtp.port=587 ←この行は確認
sender.smtp.tls.keystore=/etc/pki/tls/certs/imotentls.p12 ←追加
sender.smtp.tls.keytype=PKCS12 ←追加
sender.smtp.tls.keypasswd=PKCS#12形式作成時のパスワード ←追加

補足ですが、送信用ポートはくずのはさんの推奨設定だと元から587だと思いますので、下3行のsender.smtp.tls.~を設定してください。
(ポート番号を変えている人はサブミッションポートの587に変更が必要です)

[Esc]:wqで保存して終了。

stunnelの停止

stunnelが不要かつ接続を受け付けるポートが競合するので停止します。

[root@ imoten]# /etc/init.d/stunnel stop
$”Stopping stunnel: ”                                    [  OK  ]

自動起動もしないようにします。

[root@ imoten]# chkconfig stunnel off
[root@ imoten]# chkconfig --list stunnel
stunnel         0:off   1:off   2:off   3:off   4:off   5:off   6:off

すべての起動モード(0~6)でoffになっていればstunnelの変更完了です。

なお、これまでstunnelをつかった受信ポートを587以外に設定しているひとは、iptableの設定も見直してください。

imotenの再起動

VPS側の設定は終了ですので、imotenを再起動してTLSを使うようにします。

[root@ imoten]# /etc/init.d/imoten restart
Stopping imoten (i mode mail tensou)...
Stopped imoten (i mode mail tensou).
Starting imoten (i mode mail tensou) with test action:  with test action: ...

imotenが無事起動すればVPSでの作業は終了です。あと一息!

Gmailでのアカウント再設定

Gmailのアカウントで送信設定の変更をします。

  1. https://mail.google.com/ からGmailにログイン
  2. 歯車アイコンをクリック→設定を選ぶ
  3. 設定→アカウントとインポート→名前 のところのimotenサーバを指定しているところの「情報を編集」をクリック
  4. サブウインドウが開くので「次のステップ」
  5. SMTPサーバーのポートを587、TLSを使用したセキュリティで保護された接続(推奨)を選択して「変更を保存」

以上でGmail側の送信設定が終了します。

iPhoneのMail.appでExchange経由のGmail設定が完了していれば、以上でTLS方式での送信に対応できました。

送信サーバで直接imotenのsmtpを指定している場合や、そのほかのメールアプリを使用している場合はSSLからTLSへの再設定が必要になります。

 

imotenのTLS設定を使う方法” への7件のコメント

  1. こんにちは。
    くずのはさんからimotenしてTLS設定をこちらでしていたのですが、証明書のところで躓いてしまったのかPKCS#12形式に変換がうまくできません。エラーコメント消してしまって・・・
    TLS設定を最初からやり直したいのですが、どうすればよいでしょうか。

    • root権限でcertsディレクトリ移動して
      # rm -f imotentls.key [Enetr]
      # rm -f imotentls.crt [Enetr]
      # rm -f imotentls.p12 [Enetr]
      で一旦作りかけの秘密鍵、証明書ファイルを削除して初めからやり直せばいけると思います。
      なお、certsディレクトリにはその他の用途の証明書ファイルがあるとおもいますので間違って消したりしないよう気をつけてください。

  2. ありがとうございますm(__)m
    さっそくやってみます。

  3. 先ほどのものです。
    PKCS#12形式に変換しようとコピー&ペーストすると、下記のエラーがでてきまいます。
    Error opening input file imotentls.
    imotentls.: No such file or directory
    これはimotenがおかしいということでしょうか?
    対応策などありましたら、教えて下さい。

    • PKCS#12形式に変換のところでどんなふうにコマンドラインで入力されてますか?

      # openssl pkcs12 -export -inkey imotentls.key -in imotentls.
      crt -out imotentls.p12 [Enter]

      途中で改行せずに入力してみてください

  4. 何度も申し訳ありません。
    返信をいただいてから再チャレンジし、途中まではうまくいっていたのですが、正規に発行された証明書を持っていないのですが、root以外で触れないようにしてから(こちらを貼り付けてから# chmod 400 imotentls.* )
    下記をコピー&ペーストしてしまい
    [root@ certs]# openssl pkcs12 -export -inkey -in -certfile -out imotentls.p12
    エラーのようなものがでてしまいました。
    再度、証明書等を削除し初めからやり直していたのですが、PKCS#12形式に変換でコピー&ペーストしたところ、パスフレーズ入力は聞かれず、下記がでてきます。
    こちらはどう対処すればよいのでしょうか。どうかご教授ください。
    Usage: pkcs12 [options]
    where options are
    -export output PKCS12 file
    -chain add certificate chain
    -inkey file private key if not infile
    -certfile f add all certs in f
    -CApath arg – PEM format directory of CA’s
    -CAfile arg – PEM format file of CA’s
    -name “name” use name as friendly name
    -caname “nm” use nm as CA friendly name (can be used more than once).
    -in infile input filename
    -out outfile output filename
    -noout don’t output anything, just verify.
    -nomacver don’t verify MAC.
    -nocerts don’t output certificates.
    -clcerts only output client certificates.
    -cacerts only output CA certificates.
    -nokeys don’t output private keys.
    -info give info about PKCS#12 structure.
    -des encrypt private keys with DES
    -des3 encrypt private keys with triple DES (default)
    -aes128, -aes192, -aes256
    encrypt PEM output with cbc aes
    -nodes don’t encrypt private keys
    -noiter don’t use encryption iteration
    -maciter use MAC iteration
    -twopass separate MAC, encryption passwords
    -descert encrypt PKCS#12 certificates with triple DES (default RC2-40)
    -certpbe alg specify certificate PBE algorithm (default RC2-40)
    -keypbe alg specify private key PBE algorithm (default 3DES)
    -keyex set MS key exchange type
    -keysig set MS key signature type
    -password p set import/export password source
    -passin p input file pass phrase source
    -passout p output file pass phrase source
    -engine e use engine e, possibly a hardware device.
    -rand file:file:…
    load the file (or the files in the directory) into
    the random number generator

    • それなら、# chmod 400 imotentls.*の操作で作成した証明書関係のファイルがリードオンリーになって削除できなくなっていますので、
      # chmod 755 imotentls.* [Enter]
      として読み書き可能状態に戻してから
      # openssl pkcs12 -export -inkey imotentls.key -in imotentls.
      crt -out imotentls.p12 [Enter]
      でPKCS#12形式に変換ができないですかね?
      説明が下手ですみません。

コメントは受け付けていません。