かべちゃんのウェブサイト
SSL(安全な通信経路)

SSL(安全な通信経路)

SSL(Secure Socket Layer)は、 公開鍵暗号方式と共通鍵暗号方式を組み合わせたセキュリティプロトコルで、 次のような特徴があります。

Wyvern では、OpenSSL を利用した SSL 通信に対応しています。 ただし、クライアント認証には未対応です。 コード自体が実装されていません。 SSL対応 Wyvern を作成するには、 コンパイル時に --with-openssl オプションを付けて configure コマンドを実行し、インストールしてください。

インストール後は、make certificate と実行してください。 このとき、 次に示すように自動的にサーバ秘密鍵と自己署名付き証明書の作成を行います (入力の例を強調文字で示します)。 また、DH鍵も自動的に作成します。 デフォルトの設定では、サーバ秘密鍵は "/usr/local/wyvern/ssl/server.key" に、 自己署名証明書は "/usr/local/wyvern/ssl/server.crt" にインストールされます。


  /usr/local/bin/gmake selfcert
  /usr/bin/openssl genrsa -des3 -rand /dev/randam -out /usr/local/wyvern/ssl/private.key 1024
  0 semi-random bytes loaded
  Generating RSA private key, 1024 bit long modulus
  ..................++++++
  .....................++++++
  e is 65537 (0x10001)
  Enter PEM pass phrase:[Secret Pass Phrase]
  Verifying password - Enter PEM pass phrase:[Secret Pass Phrase]
  /usr/bin/openssl rsa -in /usr/local/wyvern/ssl/private.key -out /usr/local/wyvern/ssl/server.key
  read RSA key
  Enter PEM pass phrase:[Secret Pass Phrase]
  writing RSA key
  /usr/bin/openssl req -config ssl.cnf -new -key /usr/local/wyvern/ssl/private.key -x509 -days 90 \
  -out /usr/local/wyvern/ssl/server.crt
  Using configuration from ssl.cnf
  Enter PEM pass phrase:[Secret Pass Phrase]
  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) [JP]:[Enter-Key]
  State or Province Name (full name) [Some-State]:Miyagi
  Locality Name (eg, city) []:Sendai
  Organization Name (eg, company) []:MagickWorX.COM
  Organizational Unit Name (eg, section) []:SOHO
  Server Name (eg, www.doggy.tld; required!) []:www.MagickWorX.COM
  Email Address []:kouichi@MagickWorX.COM
  /usr/local/bin/gmake gendhkeys
  /usr/bin/openssl dhparam -out /usr/local/wyvern/ssl/dh_param_512.pem -2 512
  Generating DH parameters, 512 bit long safe prime, generator 2
  This is going to take a long time
  ..............................................................................+.................................................+.....+.....................++*++*++*++*++*++*
  /usr/bin/openssl dhparam -out /usr/local/wyvern/ssl/dh_param_1024.pem -2 1024
  Generating DH parameters, 1024 bit long safe prime, generator 2
  This is going to take a long time
  ...+.......+....................................................................................................................................+..................................................................................+..+................++*++*++*

SSL を利用して通信する場合は、"http://www.MysticWALL.COM/" を "https://www.MysticWALL.COM/" のように URL のプロトコルに https を指定します。

現時点のバージョンでは、通常の通信も SSL の通信も、 同じドキュメントディレクトリを参照する仕様となっています。 暗号化通信として利用するだけなら実用段階の実装です。 また、Basic認証機能を利用したアクセス制御を行う場合、 SSL通信と組み合わせれば、より安全なユーザ認証が可能となります。