豚吐露@wiki

Apache+SSLの導入

最終更新:

ohden

- view
管理者のみ編集可

Apache2+SSL

環境
Ubuntu 8.10
Apache 2.2.14
OpenSSL 0.9.8k

当たり前じゃが、Apache2がinstall済みであることが前提。
Apacheのインストール

OpenSSLとmodsslのinstall。
※最近下のapt-get使ったらどっちも無いって言われた...が、apache-ssl moduleは入っとるっぽぃ。Apache入れた段階で一緒に入るようになったんかな?
> sudo apt-get install ssl
> sudo apt-get install apache-ssl


Apache-SSLモジュールを有効にする。
> sudo a2enmod ssl
Enabling module ssl.
See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates.
Run '/etc/init.d/apache2 restart' to activate new configuration!

SSL使用portの設定。
> cd /etc/apache2/
> sudo vi ports.conf

中を見て、mod_sslに対する記述が無かったら以下を追記する。
<IfModule mod_ssl.c>
Listen 443
</IfModule>

ports.confの中にはこんなんもあるんじゃが...これは何なんじゃろうか?
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
GnuTLSって事はGnuのTLS moduleの参照らしいが...まぁ、わからんので放置。

証明書と秘密鍵を作る。
> sudo mkdir ssl
> cd ssl
> sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf ./apache.pem
※証明書を作り直して、その証明書を有効にしようと思うたらapacheの再起動が必要。

commonNameを設定。

[Tab]キー押下で『了解』へ移動し[Enter]キー押下で設定
出来上がった証明書はtext fileなので閲覧が可能。
> sudo vi apache.pem
見てみると
『-----BEGIN RSA PRIVATE KEY-----』~『-----END RSA PRIVATE KEY-----』のエリアと
『-----BEGIN CERTIFICATE-----』~『-----END CERTIFICATE-----』エリアに分かれてると分かる。
それぞれ秘密鍵と証明書。

> cd /etc/apache2/sites-available/
> sudo vi default-ssl

50行目辺りに『SSLCertificateFile』『SSLCertificateKeyFile』の項目があるので、その項目をコメントアウト(行頭に『#』を付ける)し、以下の1行を追加する。

SSLCertificateFile /etc/apache2/ssl/apache.pem
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
※行頭#で始まっとる下2行はうちの環境にたまたまあった『SSLCertificateFile』『SSLCertificateKeyFile』の項目ね。環境によって違うと思う。

『SSLCertificateFile』は証明書fileを指定する項目で、『SSLCertificateKeyFile』は秘密鍵を指定する項目。
で、その2項目をコメントアウトして『SSLCertificateFile』だけにしてるのは、さっき作成したapache.pemの中に証明書も秘密鍵も入ってるから。apacheが使いたい方だけを読み込んで使ってくれるらしい。

※今回は『make-ssl-cert』を使ったが、OpenSSLとか使ってもできるらしい。やってないのでまた今度。

> sudo a2ensite default-ssl

Enabling site default-ssl.
Run '/etc/init.d/apache2 reload' to activate new configuration!

> sudo /etc/init.d/apache2 restart

* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

再起動できたら、ブラウザでアクセスしてみる。
https://localhost
※httpsなのを忘れないように。

アクセスすると認証ダイアログが表示される。
勝手に作った証明書なので、当然怪しいって言われるけど気にしない。w
気になる人はお金払って証明書買って下さい。(ノ∀`)

あ、そぉそぉ。
証明書作成時に入力したcommonNameってのはココに表示されるんよね。


更新日: 2010年11月11日 (木) 13時38分22秒
記事メニュー
ウィキ募集バナー