FreeBSD10のApache2.4にオレオレ証明書をインストール[追記あり]

2016年4月8日FreeBSD,NAS,WordPress,パソコン・インターネット

う〜ん、サーバの更新作業をしているのですが、なかなかたどり着けません。今は、地盤固めをしています。その一つが、自己署名証明書(通称オレオレ証明書)をApache2.4にインストールすることです。

絶対に必要なのが、サーバ証明書です。これは、昨年と同じ方法で作ります。更新もできるのですが、昨年作ったものは暗号強度が低いので、新たに作り直します。

ここで作る秘密鍵を、FreeBSDで使い回すことにします。この秘密鍵を使って、自己署名証明書を作ります。

手順がよくわからなかったので、まずは、次のウェブページの方法で設定(作成)してみました。うまくいきました。ありがとうございます。

Apache2.4には、次の手順でインストールします。

  1. 自己署名証明書作成
  2. Apache2.4設定変更
  3. 起動テスト

それでは、順番に説明していきます。

1. 自己署名証明書作成

これは、次のウェブページの方法そのままです。

Apache2.4へのインストール(説明)を簡単にするために、/usr/local/etc/apache24で作業しました。opensslは、pkgコマンドなどで、すでにインストールされているものとします。

# cd /usr/local/etc/apache24
# openssl genrsa 2048 > server.key
# openssl req -new -key server.key > server.csr
# openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

三つほどファイルができるのですが、それぞれよくわかりません。次のウェブページの解説が非常にわかりやすいです。ありがとうございます。

それぞれ、次の意味があります。

  • server.key … 秘密鍵。"—–BEGIN RSA PRIVATE KEY—–“で始まっています。
  • server.csr … CSRファイル。"—–BEGIN CERTIFICATE REQUEST—–“で始まっています。
  • server.crt … サーバ証明書。"—–BEGIN CERTIFICATE—–“が含まれます。

これも、次のウェブページで解説されています。ありがとうございます。

2. Apache2.4設定変更

Apache2.4でこれらの証明書を使うためには、次の二つのファイルを修正する必要があります。

  • /usr/local/etc/apache24/httpd.conf
  • /usr/local/etc/apache24/extra/httpd-ssl.conf

/usr/local/etc/apache24/httpd.conf

次のモジュールを有効にする必要があります。

LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
LoadModule socache_dbm_module libexec/apache24/mod_socache_dbm.so
LoadModule socache_memcache_module libexec/apache24/mod_socache_memcache.so
LoadModule ssl_module libexec/apache24/mod_ssl.so

それと、extra/httpd-ssl.confを読む設定も有効にします。

Include etc/apache24/extra/httpd-ssl.conf

/usr/local/etc/apache24/extra/httpd-ssl.conf

Virtual Hostの一つとして設定します。ホスト名の名前解決ができるようにしておいてください。私は、DNSMASQを使っています。

普通に、/etc/hostsに設定しても構わないと思います。

httpd-ssl.confの次の箇所を、ご自身の環境に合わせて修正してください。

<VirtualHost _default_:443>
DocumentRoot "/usr/local/www/apache24/data"
ServerName www.example.com:443
ServerAdmin you@example.com

特に、DocumentRootを変更していると若干はまります。/usr/local/www/apache24/dataなら、httpd.confに次のように設定されています。もし、他の場所に移動していたら、同じように設定しないとアクセスできません。

<Directory "/usr/local/www/apache24/data">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

肝心の秘密鍵とサーバ証明書ですが、作業を/usr/local/etc/apache24でしたので、デフォルト設定がそのまま使えます。

SSLCertificateFile "/usr/local/etc/apache24/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache24/server.key"

3. 起動テスト

ここまでの設定が終わったら、Apacheを再起動します。

# apachectl restart

アクセスできました。

httpsでアクセス

肝心の、秘密鍵を使いまわす説明までには至りませんでした。設定はできているのですが、紙面が尽きました。

(追記 2015-04-11 22:21)

もちろん、ここで作った自己署名証明書は、自宅サーバ内でのみ使います。さすがに、人様にはお見せできません。

また、Apache2.4をhttpsでアクセスできるようにする理由は、自宅サーバで本ウェブサイトのコピーを動かしているからです。本ウェブサイトはhttps運用をしており、自宅サーバもhttps運用しないと同じ環境にならないためです。

Posted by お市のかた