WEBをアクセスしている場合等で、パスワードを入力する機会が多くなりました。
この場合、パスワードの入力内容が平文で流れるとパスワードを盗まれる可能性があります。
通信内容を暗号化するのは、常識となりつつあります。

[root@meckk ~]# yum -y install mod_ssl
インストール処理の設定をしています
依存性の解決をしています
--> トランザクションの確認を実行しています
---> パッケージ mod_ssl.ppc 1:2.2.15-1.fc12.2 を更新に設定しました
--> 依存性の処理をしています: libnal.so.1 のパッケージ: 1:mod_ssl-2.2.15-1.fc12.2.ppc
--> 依存性の処理をしています: libdistcache.so.1 のパッケージ: 1:mod_ssl-2.2.15-1.fc12.2.ppc
--> トランザクションの確認を実行しています
---> パッケージ distcache.ppc 0:1.4.5-21 を更新に設定しました
--> 依存性解決を終了しました

依存性を解決しました

==========================================================================================
 パッケージ          アーキテクチャ
                                   バージョン                     リポジトリー       容量
==========================================================================================
インストールしています:
 mod_ssl             ppc           1:2.2.15-1.fc12.2              updates            84 k
依存性関連でのインストールをします:
 distcache           ppc           1.4.5-21                       fedora            108 k

トランザクションの要約
==========================================================================================
インストール         2 パッケージ
アップグレード       0 パッケージ

総ダウンロード容量: 192 k
インストール済み容量: 474 k
パッケージをダウンロードしています:
(1/2): distcache-1.4.5-21.ppc.rpm                                  | 108 kB     00:00
(2/2): mod_ssl-2.2.15-1.fc12.2.ppc.rpm                             |  84 kB     00:00
------------------------------------------------------------------------------------------
合計                                                       87 kB/s | 192 kB     00:02
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールし : distcache-1.4.5-21.ppc                                             1/2
  インストールし : 1:mod_ssl-2.2.15-1.fc12.2.ppc                                      2/2

インストールしました:
  mod_ssl.ppc 1:2.2.15-1.fc12.2

依存性関連をインストールしました:
  distcache.ppc 0:1.4.5-21

完了しました!
[root@meckk ~]#

サーバー用証明書を作成します。
他サイトの設定例に従いました。

[root@meckk ~]# cd /etc/pki/tls/certs/ ← ディレクトリ移動
[root@meckk certs]# sed -i 's/365/3650/g' Makefile ← サーバー証明書有効期限を1年から10年に変更
[root@meckk certs]# make 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: ← 任意のパスワードを応答(確認)※表示はされない
umask 77 ; \
        /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) []:Kanagawa ← 都道府県名応答
Locality Name (eg, city) [Default City]:Kawasaki ← 市区町村名応答
Organization Name (eg, company) [Default Company Ltd]:meckk.com ← サイト名応答(なんでもいい)
Organizational Unit Name (eg, section) []: ← 空ENTER
Common Name (eg, your name or your server's hostname) []:meckk.comfedorasrv.com ← Webサーバー名応答
Email Address []:fedora@meckk.com ← 管理者メールアドレス応答
[root@meckk certs]# openssl rsa -in server.key -out server.key ← サーバー秘密鍵からパスワード削除
Enter pass phrase for server.key: ← サーバー秘密鍵・証明書作成時のパスワード応答※表示はされない
writing RSA key
[root@meckk certs]#

SSLの設定を行います。

[root@meckk ~]# vi /etc/httpd/conf.d/ssl.conf
#
# This is the Apache server configuration file providing SSL support.
# It contains the configuration directives to instruct the server how to
# serve pages over an https connection. For detailing information about these
# directives see 
#
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.
#

LoadModule ssl_module modules/mod_ssl.so

#
# When we also provide SSL we have to listen to the
# the HTTPS port in addition.
#
Listen 443

##
##  SSL Global Context
##
##  All SSL configuration in this context applies both to
##  the main server and all SSL-enabled virtual hosts.
##

#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program (`builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.

SSLPassPhraseDialog  builtin

#   Inter-Process Session Cache:
#   Configure the SSL Session Cache: First the mechanism
#   to use and second the expiring timeout (in seconds).

#SSLSessionCache        dc:UNIX:/var/cache/mod_ssl/distcache
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)

SSLSessionCacheTimeout  300

#   Semaphore:
#   Configure the path to the mutual exclusion semaphore the
#   SSL engine uses internally for inter-process synchronization.

SSLMutex default

#   Pseudo Random Number Generator (PRNG):
#   Configure one or more sources to seed the PRNG of the
#   SSL library. The seed data should be of good random quality.
#   WARNING! On some platforms /dev/random blocks if not enough entropy
#   is available. This means you then cannot use the /dev/random device
#   because it would lead to very long connection times (as long as
#   it requires to make more entropy available). But usually those
#   platforms additionally provide a /dev/urandom device which doesn't
#   block. So, if available, use this one instead. Read the mod_ssl User
#   Manual for more details.

SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin

#SSLRandomSeed startup file:/dev/random  512
#SSLRandomSeed connect file:/dev/random  512

#SSLRandomSeed connect file:/dev/urandom 512

#
# Use "SSLCryptoDevice" to enable any supported hardware
# accelerators. Use "openssl engine -v" to list supported
# engine names.  NOTE: If you enable an accelerator and the
# server does not start, consult the error logs and ensure
# your accelerator is functioning properly.
#

SSLCryptoDevice builtin
#SSLCryptoDevice ubsec

##
## SSL Virtual Host Context
##



# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html" コメントを解除します
#ServerName www.example.com:443

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.

SSLEngine on

#   SSL Protocol support:
# List the enable protocol levels with which clients will be able to
# connect.  Disable SSLv2 access by default:

SSLProtocol all -SSLv2

#   SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.t
SSLCertificateFile /etc/pki/tls/certs/server.crt 変更します
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateFile /etc/pki/tls/certs/server.key 変更します
#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.

#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

apache設定反映します。

[root@meckk ~]# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]
[root@meckk ~]#

これで、ルーターのポート443番を開放すれば、https による通信が可能になります。

[戻る] [TOP] [次へ]