概要:SSLとはサーバ⇔クライアント間の通信を暗号化して送受信できるプロトコルです。ApacheをSSL対応にするために、Apacheのモジュールmod_sslをインストールし、SSL証明書を作成・設定します。複数のバーチャルホストに対してのSSLの設定方法は後述します。
前提: 1. mod_sslのインストール †mod_sslがインストールされていることを確認します。以下のようにInstalled Packagesとして表示されていればOKです。 # yum list mod_ssl ← mod_sslインストール確認
:
:
Installed Packages
mod_ssl.x86_64 1:2.2.15-29.el6.centos updates
インストールされていない場合、次のようにしてyumコマンドでインストールします。 # yum -y install mod_ssl ← mod_sslインストール
mod_sslがインストールされている場合、以下のファイルが存在します。 LoadModule ssl_module modules/mod_ssl.so と記述されていて、/etc/httpd/conf/http.confの中には記述されていません。 2. サーバー用秘密鍵・証明書作成 †(1)サーバー用秘密鍵・証明書作成(CAからSSL証明書を取得する場合) †CAからSSL証明書を取得する場合は 、CAに送る公開鍵の作成が必要になります。 # cd /etc/pki/tls/certs/ ← ディレクトリ移動 # make sever.csr ← サーバー用秘密鍵・公開鍵作成.ファイル名のserver部分は任意、拡張子はcsr umask 77 ; \ /usr/bin/openssl genrsa -aes128 2048 > server.key ← 秘密鍵を作成 Generating RSA private key, 2048 bit long modulus ......................................................................................+++ ................+++ e is 65537 (0x10001) Enter pass phrase:パスワード ← 任意 Verifying - Enter pass phrase:パスワード ← 上記パスワードを入力 umask 77 ; \ /usr/bin/openssl req -utf8 -new -key server.key -out server.csr ← 公開鍵を作成 Enter pass phrase for server.key:パスワード ← 上記パスワードを入力 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) [XX]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) [Default City]:Chuo-Ku Organization Name (eg, company) [Default Company Ltd]:Exampel Inc. Organizational Unit Name (eg, section) []:Exampel Section Common Name (eg, your name or your server's hostname) []:example.com Email Address []:centos@example.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: ※上記の場合暗号化アルゴリズムがaes128となっていますが、暗号化アルゴリズムを変更したい場合は、Mkaefileの%.keyセクションにあるaes128を修正します。 入力項目の説明 †
上記内容はCAの申請方法に従って入力して下さい。 (2)サーバー用秘密鍵・証明書作成(自己証明書の場合) †SSL 通信には CA(Certification Authority, 認証局)が発行した証明書が必要ですが、独自にデジタル証明書を作成することができます。もちろんこの場合は信頼性のないサイトとしてユーザー側には警告が表示されます。以下のmakeで秘密鍵と自己証明書を一度で作成します。ここでは、自己証明書なので毎年更新しなくてもいいようにサーバー用証明書有効期限を1年から10年に変更しています。 # cd /etc/pki/tls/certs/ ← ディレクトリ移動 # sed -i 's/365/3650/g' Makefile ← サーバー用証明書有効期限を1年から10年に変更 # make server.crt ← サーバー用秘密鍵・証明書作成.ファイル名のserver部分は任意、拡張子はcrt umask 77 ; \ /usr/bin/openssl genrsa -aes128 2048 > server.key ← 秘密鍵を作成 Generating RSA private key, 2048 bit long modulus ....................................................................+++ ..........+++ e is 65537 (0x10001) Enter pass phrase:パスワード ← 任意 Verifying - Enter pass phrase:パスワード ← 上記パスワードを入力 /usr/bin/openssl req -utf8 -new -key server.key -x509 -days 3650 -out server.crt -set_serial 0 ← 証明書を作成 Enter pass phrase for server.key:パスワード ← 上記パスワードを入力 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) [XX]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) [Default City]:Chuo-Ku Organization Name (eg, company) [Default Company Ltd]:Exampel Inc. Organizational Unit Name (eg, section) []:Exampel Section Common Name (eg, your name or your server's hostname) []:example.com Email Address []:centos@example.com (3)サーバー用秘密鍵のパスワード削除 †Webサーバー起動時にパスワードを要求されないようにするため、サーバー用秘密鍵からパスワード削除します。 # openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: ← 上記パスワードを入力
writing RSA key
inとoutのファイル名が同じなのでファイルが置き換わります。元ファイルを残しておきたい場合はoutファイル名を変えます。 3. SSL証明書設定 †# vi /etc/httpd/conf.d/ssl.conf ← Apache SSL設定ファイル編集 SSLCertificateFile /etc/pki/tls/certs/server.crt ← サーバー用証明書を指定.ディレクトリーは上記で設置した場所. SSLCertificateKeyFile /etc/pki/tls/certs/server.key ← サーバー用秘密鍵を指定.ディレクトリーは上記で設置した場所. # 中間CA証明書を設置する場合 SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt ← 中間CA証明書を作成しで設置したディレクトリー. # General setup for the virtual host, inherited from global configuration #DocumentRoot "/var/www/html" ← #を削除(コメント解除)し、実際のディレクトリーを指定 ↓ DocumentRoot "/var/www/acompass/public_html" 4. Apache設定反映 †# service httpd configtest ← 設定の確認 Syntax OK # service httpd graceful ← 設定再読込み 5. ポート443番のOPEN †ネットワーク上でTCP/IPの443番ポートが開いていることを確認してください。(サーバー、クライアント、ルーターなどのファイヤーウォールやセキュリティー設定で OPENされていること。) 6. WebサーバーSSL確認 †CA発行のSSL証明書の場合 †https://ドメイン名(上記で入力したCommon Name)/にアクセスしてブラウザーから証明書を表示できることを確認し、(ブラウザーによって方法が異なります。)その内容が申請内容と一致しているか確認します。 自己証明書の場合 †https://ドメイン名(上記で入力したCommon Name)/にアクセスして「セキュリティの警告」ウィンドウが表示され、"はい"ボタン押下でWebページが表示されればOKです。 Last-modified: 2014-03-11 (火) 02:00:03 (3697d)
|