このコンテンツは、過去に使っていた環境のドキュメントです。 現在は、プログラムのバージョンアップや、運用方針の変更などで、使っていません。 従って、ドキュメントの内容が古くなっている可能性がありますので注意してください。
Apache-SSLは、ApacheをSSL対応のWebサーバにするためのパッチです。
以下にApache-SSLのインストール方法についてまとめてあります。
このページは、https://www.ash.jp/とした場合の設定例です。
OpenSSLと、Apache-SSLを、以下のサイトからダウンロードします。 ftp://ftp.ox.ac.uk:/pub/crypto/SSL ftp://ftp.infoscience.co.jp/pub/Crypto/SSL/
Apache-SSLを使用するには、あらかじめOpenSSLをインストールしておく必要があります。 これは、OpenSSLの以下のライブラリをリンクするためです。 libcript.a 暗号化ライブラリ libssl.a SSLプロトコル処理用ライブラリ
OpenSSLを、以下の方法でインストールします。
unix# cd /usr/local/src unix# gzip -cd ../pub/openssl-0.9.2b.tar.gz | tar -xvf - unix# cd openssl-0.9.2b unix# ./config unix# make unix# make rehash unix# make test unix# make install |
展開した後、FixPatchコマンドにより、パッチをかけます。 環境ファイルのディレクトリが異なるため、srcディレクトリのConfigurationファイルを修正します。 Configureコマンドを実行すると、Makefileなどが修正されます。 また、SSLのキャッシュ機能があると問題が発生するため、キャッシュ機能をFALSEにします。 これでパッチの修正は終わりですので、メイクすると、httpsdができます。 apacheの定義ファイルもhttpsd.confとして、SSLの定義を追加する必要があります。
unix# cd /usr/local/src/apache_1.3.6 unix# gzip -cd ../../pub/apache_1.3.6+ssl_1.34.tar.gz | tar -xvf - unix# FixPatch > y unix# cd src unix# vi Configuration SSL_BASE=/usr/local/ssl SSL_INCLUDE= -I$(SSL_BASE)/include SSL_CFLAGS= -DAPACHE_SSL SSL_LIB_DIR= $(SSL_BASE)/lib SSL_LIBS= -L$(SSL_LIB_DIR) -lssl -lcrypto SSL_APP_DIR= $(SSL_BASE)/bin SSL_APP=/usr/local/ssl/bin/ssleay unix# Configure unix# vi modules/ssl/apache_ssl.c # define CACHE_SESSIONS FALSE unix# cd .. unix# make clean unix# ./configure --prefix=/usr/local unix# make unix# make install |
Apacheの定義ファイルを編集し、SSLで使うポートを443に設定します。 また、SSLに関するディレクティブの内容を追加します。
unix# vi /usr/local/conf/httpsd.conf # The default port for SSL is 443... # SSLで使うポート番号(デフォルトは、443) # Port 443 # Listen: Allows you to bind Apache to specific IP addresses and/or # SSLで使うIPアドレスとポート番号(IPバーチャルホスト時に使用) Listen XXX.XXX.XXX.XXX:443 # Set the CA certificate verification path (must be PEM encoded). # (in addition to getenv("SSL_CERT_DIR"), I think). # 上位認証局の証明書の格納場所 SSLCACertificatePath /usr/local/ssl/certs # Set the CA certificate verification file (must be PEM encoded). # (in addition to getenv("SSL_CERT_FILE"), I think). # 認証局の証明書(公開鍵)のファイル名 SSLCACertificateFile /usr/local/ssl/certs/cert.pem # 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 -1 will prompt again. # A test certificate can be generated with "make certificate". # httpsdの証明書(公開鍵)のファイル名 SSLCertificateFile /usr/local/ssl/certs/cert.pem # If the key is not combined with the certificate, use this directive to # point at the key file. If this starts with a '/' it specifies an absolute # path, otherwise it is relative to the default certificate area. That is, it # means " |
その他、下記のディレクティブの内容を変更、確認します。
unix# vi /usr/local/conf/httpsd.conf # config of httpd # Webサーバの定義 ServerType standalone ServerRoot "/usr/local" User wmaster Group wmaster PidFile /usr/local/logs/httpsd.pid ScoreBoardFile /usr/local/logs/httpsd.scoreboard ErrorLog /usr/local/logs/https_error_log CustomLog /usr/local/logs/https_access_log common ServerAdmin root@ash.jp ServerName www.ash.jp AddHandler cgi-script .cgi .pl DirectoryIndex index.html index.htm index.cgi ScriptAlias /cgi-bin/ "/usr/local/cgi-bin/" # ディレクトリの定義 DocumentRoot "/home/www/html" <Directory "/home/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Directory "/usr/local/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Directory "/usr/local/cgi-bin"> Options None FollowSymLinks ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> |
ベリサイン社から送信されてきた証明書をインストールします。
送信されて来たメールの"BEGIN CERTIFICATE"から"END CERTIFICATE"までをcert.pemファイルにカット&ペーストします。
単に暗号化したいだけでしたら、自分でCAとなり証明書を発行することができます。
この場合は、独自CAの設定方法を参照してください。
unix# vi /usr/local/ssl/certs/cert.pem -----BEGIN CERTIFICATE----- Z1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk5 MDYwOTAwMDAwMFoXDTAwMDYwODIzNTk1OVowgacxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzESMBAGA1UEBxQJTWluYXRvLWt1MRgwFgYDVQQKFA9ORUMgQ29y u0mgkN0xTI1EvEmbuBAyS7SKkKHlOMh9g+Q5ef1jwzTPeKr9FHQ46ci5NQXZlqI/ l9AjnwJuSocwCLFGwkakUXECAwEAATANBgkqhkiG9w0BAQQFAAN+ACCw17Hz0yfj c/k+gxcjqlo/JJ2TXLY8S6lTXsgY2dfxy9rj0KCA5KLlLT3rddKC2attS12CP8mE 61qaFik70EaqgZ5xCb2RIJ1/Ei0B -----END CERTIFICATE----- |
CAの作成が終わったら、httpsdを起動します。
以下の方法でApacheを起動します。
unix# httpsdctl start または unix# httpsd -f conf/httpsd.conf |
httpsdを起動すると、秘密鍵のパスフレーズを聞いてきますので入力します。
自動起動する場合などは、パスフレーズをはずして使用します。
パスフレースをはずす場合やつける場合には、以下のコマンドを使います。
・パスフレーズをはずす場合 unix# openssl rsa -in ../private/key.pem -out ../private/key_nopass.pem unix# mv ../private/key_nopass.pem ../private/key.pem ・パスフレーズをつける場合 unix# openssl rsa -des -in ../private/key.pem -out ../private/key_pass.pem unix# mv ../private/key_pass.pem ../private/key.pem |
Apacheを終了させる場合は、以下の方法で実施します。
unix# httpsdctl stop または unix# kill プロセス番号(PPIDが1のhttpsdプロセス) |
ブラウザで、以下のURLにアクセスしてみます。
https://www.ash.jp/ |