IT pass HikiWiki - [Memo2010][ITPASS] 続 apache2 の設定のやり直しログ Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

10/11/19 に apache2 の設定のやり直しを佐伯が行った.

{{toc_here}}

[((<ITPASSサーバ構築ドキュメント>)) へ戻る]

== 設定ファイルの編集

httpd-ssl 用の設定ファイルである /usr/local/apache2/conf/extra/httpd-ssl.conf を編集した.

変更の要点は以下の通りである.

* cps の SSLCertificateKeyFile の証明書が aoe のものを参照していたため, cps のものを参照するように直す.

参考として, オリジナルとの diff を載せておく.

$ diff -u original/extra/httpd-ssl.conf extra/httpd-ssl.conf
--- original/extra/httpd-ssl.conf       2010-10-05 15:39:11.000000000 +0900
+++ extra/httpd-ssl.conf        2010-11-18 20:47:47.000000000 +0900
@@ -71,14 +71,15 @@
  ## SSL Virtual Host Context
  ##

-<VirtualHost _default_:443>
+NameVirtualHost *:443
+<VirtualHost *:443>

  #   General setup for the virtual host
-DocumentRoot "/usr/local/apache2/htdocs"
-ServerName www.example.com:443
-ServerAdmin you@example.com
-ErrorLog "/usr/local/apache2/logs/error_log"
-TransferLog "/usr/local/apache2/logs/access_log"
+DocumentRoot "/home/itpass/public_html"
+ServerName itpass.scitec.kobe-u.ac.jp:443
+ServerAdmin itpadmin@itpass.scitec.kobe-u.ac.jp
+ErrorLog "/var/log/httpd-ssl-error.log"
+TransferLog "/var/log/httpd-ssl-access.log"

  #   SSL Engine Switch:
  #   Enable/Disable SSL for this virtual host.
@@ -96,7 +97,7 @@
  #   in mind that if you have both an RSA and a DSA certificate you
  #   can configure both in parallel (to also allow the use of DSA
  #   ciphers, etc.)
-SSLCertificateFile "/usr/local/apache2/conf/server.crt"
+SSLCertificateFile "/usr/local/apache2/conf/ca/itpass/server.crt"
  #SSLCertificateFile "/usr/local/apache2/conf/server-dsa.crt"

  #   Server Private Key:
@@ -104,7 +105,7 @@
  #   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.)
-SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
+SSLCertificateKeyFile "/usr/local/apache2/conf/ca/itpass/server.key"
  #SSLCertificateKeyFile "/usr/local/apache2/conf/server-dsa.key"

  #   Server Certificate Chain:
@@ -114,7 +115,7 @@
  #   the referenced file can be the same as SSLCertificateFile
  #   when the CA certificates are directly appended to the server
  #   certificate for convinience.
-#SSLCertificateChainFile "/usr/local/apache2/conf/server-ca.crt"
+#SSLCertificateChainFile "/usr/local/apache2/conf/server.crt"

  #   Certificate Authority (CA):
  #   Set the CA certificate verification path where to find CA
@@ -228,4 +229,41 @@
  CustomLog "/usr/local/apache2/logs/ssl_request_log" \
            "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

+</VirtualHost>
+
+<VirtualHost *:443>
+ DocumentRoot "/home/aoelab/public_html"
+ ServerName aoe.scitec.kobe-u.ac.jp:443
+ ServerAdmin itpadmin@itpass.scitec.kobe-u.ac.jp
+ ErrorLog /var/log/httpd-ssl-error.log
+ TransferLog /var/log/httpd-ssl-access.log
+ SSLEngine on
+ SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+ SSLCertificateFile "/usr/local/apache2/conf/ca/aoe/server.crt"
+ SSLCertificateKeyFile "/usr/local/apache2/conf/ca/aoe/server.key"
+</VirtualHost>
+
+<VirtualHost *:443>
+ DocumentRoot "/home/cps/public_html"
+ ServerName cps.scitec.kobe-u.ac.jp:443
+ ServerAdmin itpadmin@itpass.scitec.kobe-u.ac.jp
+ ErrorLog /var/log/httpd-ssl-error.log
+ TransferLog /var/log/httpd-ssl-access.log
+ SSLEngine on
+ SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+ SSLCertificateFile "/usr/local/apache2/conf/ca/cps/server.crt"
+ SSLCertificateKeyFile "/usr/local/apache2/conf/ca/cps/server.key"
+</VirtualHost>
+
+
+<VirtualHost *:443>
+ DocumentRoot "/home/epalab/public_html"
+ ServerName epa.scitec.kobe-u.ac.jp:443
+ ServerAdmin itpadmin@itpass.scitec.kobe-u.ac.jp
+ ErrorLog /var/log/httpd-ssl-error.log
+ TransferLog /var/log/httpd-ssl-access.log
+ SSLEngine on
+ SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+ SSLCertificateFile "/usr/local/apache2/conf/ca/epa/server.crt"
+ SSLCertificateKeyFile "/usr/local/apache2/conf/ca/epa/server.key"
  </VirtualHost>

設定ファイルの変更を反映するため, apache を再起動した.

# /usr/local/apache2/bin/apachectl -k restart

== SSL 用の証明書の作成

=== プライベート CA の作成

まず, apache の config ファイルに入り, 次のように証明書を格納するディレクトリを作成した.

# cd /usr/local/apache2/conf/ca
# mkdir cps

続いて以下の作業を行った.

  # /usr/lib/ssl/misc/CA.pl -newca
  CA certificate filename (or enter to create)
  (空で Enter)

  Enter PEM pass phrase: (適当な文字列入力)

  Country Name (2 letter code) [AU]: JP
  State or Province Name (full name) [Some-State]: Hyogo
  Locality Name (eg, city) []: Kobe
  Organization Name (eg, company) [Internet Widgits Pty Ltd]: Private_CA
  Organizational Unit Name (eg, section) []: Private_CA
  Common Name (eg, YOUR name) : Private_CA
  Email Address: itpadmin_at_itpass.scitec.kobe-u.ac.jp
  A challenge password: (空で Enter)
  A optional company name: (空で Enter)

  Enter pass phrase for ./demoCA/private/./cakey.pem: (先と同じパスフレーズ)

この作業で以下のようなディレクトリ構造になったことを確認した.

/usr/local/apache2/conf/ca
                         |
                         └ demoCA [ 各種証明書等のルートディレクトリ ]
                            |
                            ├ certs [ 証明書等のディレクトリ(バックアップに利用) ]
                            |
                            ├ crl [ 破棄証明書一覧用のディレクトリ ]
                            |
                            ├ newcerts [ クライアント証明書(sireal追番)のディレクトリ ]
                            |  |
                            |  ├ xxxxx..pem [ クライアント証明書 ]
                            |  |    :
                            |  └ xxxxx..pem [ クライアント証明書 ]
                            |
                            ├ private [ CA用の秘密鍵用ディレクトリ ]
                            |  |
                            |  └ cakey.pem [ CA用の秘密鍵 ]
                            |
                            ├ cacert.pem [ CA用の証明書 ]
                            ├ index.txt     [ クライアント証明書用DB ]
                            └ serial [ クライアント証明書用シリアル ]

以下で, サーバ用 CA 証明書の作成

# openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt

ブラウザに登録されるバイナリ DER フォーマットで記述されたファイルの作成.

# openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/ca.der

サーバ用秘密鍵の作成

# /usr/lib/ssl/misc/CA.pl -newreq-nodes

  Country Name (2 letter code) [AU]: JP
  State or Province Name (full name) [Some-State]: Hyogo
  Locality Name (eg, city) []: Kobe
  Organization Name (eg, company) [Internet Widgits Pty Ltd]: Kobe University
  Organizational Unit Name (eg, section) []: CPS
  Common Name (eg, YOUR name) : cps.scitec.kobe-u.ac.jp
  Email Address: itpadmin_at_itpass.scitec.kobe-u.ac.jp
  A challenge password: (空で Enter)
  A optional company name: (空で Enter)

サーバ用証明書の作成

# /usr/lib/ssl/misc/CA.pl -sign
...
Enter pass phrase for ./demoCA/private/cakey.pem: (さきほどのパスフレーズを入力)
...
Sign the certificate? [y/n]: y[Enter]
1 out of 1 certificate requests certified, commit? [y/n] y[Enter]

サーバ証明書を crt ファイルに書き出した.

# openssl x509 -in newcert.pem -out server.crt

これらの作業により, demoCA 以下に ca.der が, カレントディレクトリに server.crt, newkey.pem が作成された.
これらのファイルを証明書を格納するために作成した ca ディレクトリ以下に格納した.

  # mv server.crt cps/
  # mv newkey.pem cps/server.key
  # mv demoCA/ca.der cps/

最後に demoCA ディレクトリ以下を削除した.

  # rm -r demoCA/

これで鍵の作成は完了した.