ライン

ポイント:*

ライン

 はじめに

 個人でSSL証明書を買うことは容易で安価なものが出回っていますが、流石にワイルドカード証明書は高価です。
*.example.comのように、ドメイン以下のサブドメインのいずれにも利用できる証明書なので、個別に複数を購入するよりかはリーズナブルです。

 しかしながら、自己認証の証明書で良いと割り切る限りにおいてはどうでも良くて、ベーシック認証画面を使うシーンだけSSLで通信したいなどのニーズには自己認証な証明書で十分であると思っています。

 前置き的な言い訳はこんなところにしまして、作成して設置します。
どこかにメモ置いたはずなのに、見つけられなくなったので、再度作成するごときの備忘録です。

 SSL自己認証証明書

apache24

 相変わらず、このページの内容は FreeBSDが前提です。
他のOS利用の方は、部分的に参照いただいて置き換えてみていただければ幸いです。

 apache24系のウェブサーバが導入されているという前提から開始します。
手順を確認したい方は、入れ方なんて数行ですので、上記にある検索で確認してくださいね。

# cd /usr/local/etc/apache24/extra
# ll httpd-ssl.conf
-rw-r--r--  1 root  wheel  11396 Dec 29 14:41 httpd-ssl.conf

 ほぼデフォルトのままですが、以下のようにします。

#grep -v ^# httpd-ssl.conf | grep -v ^$
Listen 443
SSLProtocol -ALL -SSLv3 +TLSv1
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/var/run/ssl_scache(512000)"
SSLSessionCacheTimeout  300
<VirtualHost _default_:443>
DocumentRoot "/usr/local/www/apache24/data"
ServerName host.example.jp:443
ServerAdmin you@example.com
ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"
SSLEngine on
SSLCertificateFile "/usr/local/etc/apache24/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache24/server.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/www/apache24/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

 では、上記位置にあるように鍵ファイルを作成します。

# cd /usr/local/etc/apache24
# openssl genrsa -out ./server.key 2048
Generating RSA private key, 2048 bit long modulus
..........................................................................................................................................................+++
.............................................................................+++
e is 65537 (0x10001)
# openssl req -new -days 3650 -key ./server.key -out ./server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [JP]:JP
State or Province Name (full name) [Tokyo]:TOKYO
Locality Name (eg, city) []:Shinjuku
Organization Name (eg, company) [example.jp]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:*.example.jp
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
# openssl x509 -in ./server.csr -out ./server.crt -req -signkey ./server.key -days 3650
Signature ok
subject=/C=JP/ST=Tokyo/L=Shinjuku/O=example.jp/CN=*.example.jp
Getting Private key
# chmod 400 server.*

 要するに、「Common Name」の部分をワイルドカードなアスタリスクにするだけの話。
httpd.conf で以下の2箇所はコメントを外します。

LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so

LoadModule ssl_module libexec/apache24/mod_ssl.so

# Secure (SSL/TLS) connections
Include etc/apache24/extra/httpd-ssl.conf

 ここまでで基本的な設定は終わりなので、サービスを上げ直して、通信してみてください。

# service apache24 restart

 利用できるようになっていました。ついでなので、毎度のder鍵の作成。

# openssl x509 -in server.csr -out ./server.crt -req -signkey ./server.key  -days 3650
Signature ok
subject=/C=JP/ST=Tokyo/L=Shinjuku/O=example.jp/CN=*.example.jp
Getting Private key
# openssl x509 -inform pem -in ./server.crt -outform der -out ./server.der
(※ここでsftpでこのファイルをローカルに転送しています)
# chmod 400 server.*
# service apache24 restart

 何度も書いている通りですが、今回も書きます。
デスクトップに保存したDERな鍵をダブルクリックするところから始めます。

「証明書のインストール」をクリック
「次へ」
「次へ」
「信頼された証明書機関」を選択し、「OK」
「次へ」
「完了」
「はい」を選択
「OK」押して終了

 という感じでIE側では保存できました。

これで、どのブラウザからもエラーにならず利用できるようになったはずです。
このder ファイルを使用する端末ごとに入れてあげれば、PCでは普通に使えるはずです。

【改訂履歴】作成:2015/01/15 更新:-
【参考リンク】

*

Copyright © 1996,1997-2006,2007- by F.Kimura,