SSL データ通信の暗号化の設定

SSL データ通信暗号化

  • openssl は基本的に入っていますが、一応確かめてみます。
  • # rpm -aq | grep openssl

    openssl-0.9.7d-0vl3.2
    openssl096-0.9.6m-0vl1.1
  • mod_ssl-apache2 をインストールします。
  • # apt-get install mod_ssl-apache2

    パッケージリストを読みこんでいます… 完了
    依存情報ツリーを作成しています… 完了
    以下のパッケージが新たにインストールされます:
    mod_ssl-apache2
    アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
    –省略
    完了
  • サーバー用秘密鍵の作成
  • # cd /usr/share/ssl/certs

    [root@linux certs]# make server.key

    umask 77 ; \
    /usr/bin/openssl genrsa -des3 1024 > server.key
    Generating RSA private key, 1024 bit long modulus
    ………………..++++++
    ……………………++++++
    e is 65537 (0x10001)
    Enter pass phrase:         ←任意のパスワード
    Verifying – Enter pass phrase:   ←再記入

    Webサーバー起動時にパスワードを要求されないようにするため、サーバー用秘密鍵からパスワードを削除する

    # openssl rsa -in server.key -out server.key

    Enter pass phrase for server.key:  ←上記のパスワード
    writing RSA key
  • サーバー用公開鍵の作成
  • [root@linux certs]# make server.csr

    umask 77 ; \
    /usr/bin/openssl req -new -key server.key -out server.csr
    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) [AU]:JP  ←国名を記入
    State or Province Name (full name) [Some-State]:Ooita  ←都道府県名を記入
    Locality Name (eg, city) []:Kusu    ←市区町村名を記入
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Kaisya  ←会社名を記入
    Organizational Unit Name (eg, section) []:Keiri   ←部署(空EnterでもOK)
    Common Name (eg, YOUR name) []:slow-fox.com    ← ドメインを記入(正確に!)
    Email Address []:xxxx@slow-fox.com   管理者のメールアドレス

    Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password []:     ←空EnterでOK
    An optional company name []:   ←空EnterでOK

  • サーバー用証明書の作成
  • [root@linux certs]# openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 365

    Signature ok
    subject=/C=JP/ST=Ooita/L=Kusu/O=Kaisya/OU=Keiri/CN=slow-fox.com/emailAddress=xxxx@slow-fox.com
    Getting Private key

    パーミッション変更

    [root@linux certs]# chmod 400 server.*

    サーバー用鍵ペア、証明書を移動

    [root@linux certs]# mv server.* /etc/apache2/conf

  • ssl.conf の編集
  • # vi /etc/apache2/conf.d/ssl.conf

    93行
    DocumentRoot “/var/www/html”
    ServerName new.host.name:443
    ServerAdmin you@your.address
    ↓ドキュメントルート、サーバ名、管理者のメールアドレスをhttpd.confと同じように変更
    DocumentRoot “/home”
    ServerName slow-fox.com:443
    ServerAdmin xxxx@slow-fox.com

    ↓httpd.confでAliasを使用している場合は追加する。追加しないとエラーとなる

    Alias /xxxx/ “/home/xxxx/pubulic_html/”

    116行
    SSLCertificateFile /etc/apache2/conf/ssl.crt/server.crt
    ↓サーバー用証明書に変更
    SSLCertificateFile /etc/apache2/conf/server.pem

    124行
    SSLCertificateKeyFile /etc/apache2/conf/ssl.key/server.key
    ↓サーバー用秘密鍵に変更
    SSLCertificateKeyFile /etc/apache2/conf/server.key

    # /etc/rc.d/init.d/apache2 restart

    ポート 443を空けること

SSL データ通信の暗号化の設定