Solaris10 on WebServer (OpenSSLの設定)


OpenSSLも最初は考えていなかったのですがWebアプリケーション(CGI)作成+テスト用と言う意味から設定してみる事にしました。


2−1 インストール

Solaris10には最初からOpenSSLが組み込まれているようなのでインストールや起動については端折ります。


2−2 openssl.cnfの修正

apacheにSSLを組み込む前にOpenSSLの設定をする必要があります。まずは/etc/sfw/openssl/openssl.cnfの修正を行います。

修正前 修正後
[ CA_default ]
dir          = /etc/sfw/openssl/
certs        = $dir/certs
crl_dir        = $dir/crl
database      = $dir/index.text
#unique_subject = no
[ CA_default ]
dir         = /etc/sfw/openssl/MyCA/
certs        = $dir/certs
crl_dir        = $dir/crl
database      = $dir/index.text
unique_subject = no

dirは編集しなくてもかまいませんが勉強と言う意味からも作成したファイルが解らなくならないようにMyCAディレクトリにデータを作成する事にしました。


2−3 ルート証明の作成

証明書の作成はCA.plと言うスクリプトで行いますが、いくつかの入力が必要になります。

# cd /etc/sfw/openssl
# perl /usr/sfw/bin/CA.pl -newca
CA certificate filename (or enter to create)
Enter
    :
  { 略 }
    :
Enter PEM pass phrase:
passphrase
Verifying Enter PEM pass phrase::
passphrase
    :
  { 略 }
    :
Country Name (2 letter code) [US]:
JP
State or Province Name (full name) [Some-State]:
Todoufuken
Locality Name (eg. city) []:
Sityouson
Organization Name (eg. company) [Unconfigured OpenSSL Installation]:
Kaisya
Organizational Unit Name (eg. section) []:
Busyo
Common Name (eg. YOUR name) []:
Syoumeisyomei
Email Address []:
root@domainname

filenameの所は新規に作成するので、そのままEnterで先に進みます。
passphreseの所2箇所は後からの設定でも必要なので覚えておく必要があります。
Todoufukenには都道府県をSityousonには市町村をKaisyaには会社名やグループ・団体名をBusyoには所属部署を入力します。
Syoumeisyomeiは作成する証明書の名前になり、root@domainnameの所には発行者のメールアドレスを入力します。
仮に作る証明書で実際に登録する物ではないので特別に配慮は不要だと思います。

成功していれば/etc/sfw/opensslにMyCAと言うディレクトリが出来て中には複数のファイルが作成されていると思います。


2−4 apache用ssl.confの設定

apache用の認証キーの設定は/etc/apache2/ssl.confで行います。

    :
  { 略 }
    :
Documentroot "/var/apache2/htdocs"
ServerName
hostname.domainname:443
ServerAdmin
root@domainname
ErrorLog /var/apache2/logs/error_log
    :
  { 略 }
    :
SSLCertificateFile /etc/apache2/ssl.crt/server.crt
    :
  { 略 }
    :
SSLCertificateKeyFile /var/apache2/ssl.key/server.key
    :
  { 略 }
    :

ssl.confの修正は青い文字の部分ServerNameとServerAdminで適切にFQDN形式のサーバー名と管理者のメールアドレスを入力します。
また、赤文字の部分には認証用キーの参照先が記述されています。特に編集する必要は無いと思いますが、これらのディレクトリに証明用キーを保存しておく必要が有ります。

# mkdir /etc/apache2/ssl.crt
# mkdir /etc/apache2/ssl.key

2−5 apache用認証キーの作成

opensslを使って2−4で作成したディレクトリにserver.kryを作成しますがいくつかの問い合わせが有ります。2−3同様に入力して行けば良いのですが特にpass phraseには注意が必要で2−3で設定した物と違うと失敗します。

# cd /etc/sfw/openssl
# openssl req -keyout /etc/apache2/ssl.key/server.key -out csr.pen
    :
  { 略 }
    :
Enter PEM pass phrase:
passphrase
Verifying Enter PEM pass phrase:
passphrase
    :
  { 略 }
    :
A challenge password []:
Enter
An optional company name []:
Enter

A challenge passwordとAn optional company nameは省略可能なようなのでEnterで進みました。
成功していれば/etc/apache2/ssl.keyにserver.keyが出来上がっていますが、これは暗号化されていてSMFには管理出来ないそうなので暗号を解除して平文化します。

# openssl rsa -in /etc/apache2/ssl.key/server.key -out /etc/apache2/ssl.key/server.key

平文化も実行するとpass fhraseの入力が必要になりますので注意してください。


2−6 サイト用証明書の作成

サイト用証明書もopensslを使って作成します。これもまた、pass phraseの入力が必要になります。

# cd /etc/sfw/openssl
# openssl ca -out filename -infiles csr.pem
    :
  { 略 }
    :
Enter pass phrase for /etc/sfw/openssl/MyCA/private/cakey.pem:
passphrase
    :
  { 略 }
    :
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]:
y
Write out database with 1 new entries
Data Base Updated

filenameは何でも良いと思いますがhostname.domainname.crtとするのが標準的な考え方のようです。
出来た証明書を2−4で作成したディレクトリにserver.crtとしてコピーします。

# cp filename /etc/apache2/ssl.crt/server.crt

2−7 SSLを適応したapacheの起動

SSLをapacheに認識させるにはmanifestの修正が必要になり/var/svc/manifest/network/http-apache2.xmlを編集します。

    :
  { 略 }
    :
<property_group name='httpd' type='application'>
   <stability value='Evolving' />
   <propval name='ssl' type=boolean' value='
true' />
<property_group>
    :
  { 略 }
    :   

赤文字の部分はfalseになっていますが、これをtrueに修正します。修正したらapacheを再起動させてSSLを認識させます。

# svcadm disable apache2
# svcadm refresh apache2
# svcadm enable apache2

間違いが無ければ、これでSSLは組み込まれました。ブラウザを開いてhttps://servername等でサイトを開いて下さい。証明書の警告等が出たら完成です。


[前へ] [目次] [次へ]