OpenSSLの基本と、メールサーバに暗号化通信を導入する際の流れを確認


投稿日:2012年11月12日
  • 1
  • 1
  • 0



OpenSSLを利用すればSSL通信は簡単なコマンドで実現できます

OpenSSL」は暗号化通信(TLS)のためのツールを集めたライブラリです。
メールサーバ構築の際も「プライベートCAの構築」「各種秘密鍵・公開鍵の作成」「証明書の発行」「暗号形式の変換」と活躍します。こうした暗号化通信の構築を、簡単なコマンドで実現してくれるのが「OpenSSL」です。

OpenSSL」の歴史は長く、新旧の様々な暗号化技術を網羅しています。そのため膨大なオプションが用意されています。

実際に構築するためのコマンドは後のページで解説します。このページでは基本的な使い方と調べ方。合わせてメールサーバをSSLに対応させる手順について確認します。

OpenSSL公式ページ

OpenSSL日本語サイト

本家の英語版にしか書かれていない説明も多数あるので、合わせてご覧ください。
OpenSSL本家(英語)


OpenSSLの基本的な書式

OpenSSLは以下のように「openssl」の後に「実行するコマンド」、その後に「コマンド特有のオプションやパラメータ」を指定して利用します。

openssl command [ command_opts ] [ command_args ]

例)OpenSSLを利用して秘密鍵を作成するコマンド

# openssl genrsa -des3 -out (秘密鍵ファイル名).key 2048

genrsa」がコマンド。
-des3」と「-out (秘密鍵ファイル名).key」がオプション。
2048」が引数(パラメータ)。

それぞれコマンドの解説は「公式のopensslのページ」のページにあります。

さらに「genrsa」について知りたい場合は上記のページで調べたいコマンドのテキストリンクをクリックしてください。「genrsaの解説ページ

このように、わからないコマンドやオプションがあったら公式ページで調べてみてください。


OpenSSLで公開鍵暗号方式のメールサーバを構築する際の流れ

OpenSSL」で公開鍵暗号方式を構築する作業は長丁場になります。特にはじめて設定する方は、慣れない専門用語を理解しながら設定することになるため、何をしているか判らずに例と同じコマンドを打つという状態に陥りがちです。そうならないために、まず全体の流れを把握しておいてください。

1.プライベートCAの構築

  • 1-1.CAを構築する際に利用する「/etc/pki/tls/misc/CA」の設定を変更
  • 1-2.OpenSSLの基本動作を設定する「/etc/pki/tls/openssl.cnf」を変更
  • 1-3.「/etc/pki/tls/misc/CA」を実行してプライベートCAを構築
  • 1-4.プライベートCA用に作成された「公開鍵証明書(公開鍵)」を、クライアントのルート証明書にインストールできるDER形式に変換(PEM形式→DER形式)

2.メールサーバ用の秘密鍵と公開鍵を作成

  • 2-1.メールサーバで利用する「秘密鍵」を作成
  • 2-2.「2-1の秘密鍵」を元に「証明書署名要求(CSR)」を作成
  • 2-3.「2-2の証明書署名要求(CSR)」を元にプライベートCAで署名して、「公開鍵証明書(公開鍵)」の作成

3.PostfixでSSLを有効に設定

  • 3-1.Postfixの設定ファイル「/etc/postfix/main.cf」の編集
  • 3-2.同じくPostfixの設定ファイル「/etc/postfix/master.cf」の編集

4.DovecotでSSLを有効に設定

  • 4-1.Dovecotの設定ファイル「/etc/dovecot.conf」の編集

5.LinuxファイアーウォールでSSL用ポートの開放

  • 5-1.Linuxファイアーウォール「/etc/sysconfig/iptables」の設定。SSLで利用する以下のポートの開放
    • ポート25番(smtp protocol)
    • ポート465番(smtps protocol)
    • ポート587番(e-mail message submission)
    • ポート995番(pop3s protocol)
    • ポート993番(imap4s protocol)

以上の順序で、OpenSSLを利用してメールサーバにSSLを導入することができます。
それでは次回は「OpenSSLでプライベートCAを構築して、クライアント用ルート証明書を作成」します。



現在のページを共有する



現在のページに関連する記事


おすすめの記事


コメントを残す

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。面倒な登録なしでご利用になりれます。