Apache/2.2.22 (Debian)設定

サーバーのHDDがクラッシュしまして、さすがに8年前にこしらえたモノだったので、いっそのこと、余りのM/Bなどを組み合わせて半・新調しました。

↑・・・が壊れました(笑)

ので、新調しました。

最近のApache思い出せるよう設定メモです。

 

/etc/apache2/apache2.conf

HostnameLookups On

LanguagePriority jp en

AddHandler cgi-script .cgi .dat .pl

DirectoryIndex index.php index.html index.htm index.cgi

・・・など。

 

/etc/apache2/conf.d/security

ServerTokens Prod

ServerSignature Off

TraceEnable Off

・・・など。

/etc/apache2/sites-available/default

CustomLog /var/log/apache2/access.log combined env=!no_log

SetEnvIf Request_URI "\.(gif|jpg|png|JPG|GIF|PNG|bmp|css|ico|ICO|js)$" no_log

SetEnvIf Remote_addr 192.168. no_log

・・・など。

 

# a2enmod

# a2enmod rewrite
URLリライトに使ってます。

# a2enmod ssl
SSLを有効にする。

・・・など。
その他有効・無効は/etc/apache2/mods-enabled や mods-available を見ながら確認。

 

SSL/TLS証明書関連

以下は、標準サイト:80がIt works!である(Apacheが正常に動いている)ことが前提。

基本はここを読むこと。

(例)適当な場所にsslキーと証明書を入れるディレクトリを作成します(任意)。
# mkdir /etc/apache2/ssl
# cd /etc/apache2/ssl

そしてそのディレクトリに移動しておいてください。

 

.crt(証明書)を発行するために、.key(秘密鍵)と.csr(証明要求)を作成。

※ここで作成する"証明書"はいわゆる「オレオレ証明書」なので、利用者にとっては不信なものとなります。

◆秘密鍵の作成(.keyの作成)。
# openssl genrsa -out ./server.key 2048 -sha256

◆証明要求の作成(.csrの作成)。
# openssl req -new -key ./server.key -out ./server.csr -sha256

作成の最中にCNとかOとか分からなくなったらここ。
Common Name (e.g. server FQDN or YOUR name) []:minami.homelinux.org
一番迷うのはコモンネーム。
基本は、ホスト名.ドメイン名.comなどと入れます。

※パスフレーズは使わない設定にしています。必要な場合は -des3 などのオプションを付ける必要があります。

※SHA1はそろそろダメらしいのでSHA256で作成するようにコマンドを書き換えました。

 

.key .csrが揃ったので.crtを発行してもらう。期間は約10年間で。

# openssl x509 -days 3650 -in ./server.csr -out ./server.crt -req -signkey ./server.key  -sha256

◆パーミッションの変更。
# chmod 400 server.*

 

# a2ensite default-ssl

SSLサイトの有効(SSLディレクティブは標準では有効になっていないはず。)

このdefault-sslはDebian系の場合、/etc/apache2/sites-availableにあります。 

/etc/apache2/sites-available/default-ssl

default-sslの編集。

ポイントだけ。
斜体は人によって異なります。
(例)
<VirtualHost minami.homelinux.org:443>
ServerAdmin このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
ServerName minami.homelinux.org
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

以上はSSLサイトを動かすための最低記述となります。 

DocumentRootや各ディレクティブの記述はApache2のサイトを参照すること。

※昔はサイトを別けたり、コンテンツの内容や利用規模に応じて各ディレクティブはとても複雑な設定がされていましたが、最近はCMSなども発達しているため、そちらで制御することが多くなりました。

 

SSLチェック(QualysSSL)

 

/etc/apache2/ports.conf

#NameVirtualHost *:80

起動時の[warn] NameVirtualHost *:80 has no VirtualHosts警告消しのため。

 

その他、標準では入ってくれないインストールしておくと良いもの

# apt-get install php5-gd php5-mysql

 なんでも入れれば良いってもんじゃないですよ?

 

コメントを追加(どなたでも投稿できます)