テスト目的では、サードパーティーの CA ではなく、自己署名付きサーバー認証局 (CA) を使用できます。Apache の自己署名付きサーバー CA を作成する手順は、クライアント証明書の認証局の作成で説明されているクライアント証明書のために CA を作成する手順と非常に似ています。
次のコマンドを使用して、サーバー CA を作成します。subject をサーバーの DNS 名に設定します。
$ pktool gencert label=apacheCA subject="CN=apachetest" \ serial=0x01
次のコマンドを使用して、サーバー CA の CSR を作成します。サーバーに複数の名前でアクセスできる場合、または IP アドレスで直接利用できるようにする場合は、OpenSSL のドキュメントの Subject Alternative Name の説明に従って、subjectAltNames ディレクティブを使用します。
$ pktool gencsr label=apache subject="CN=pkg-sec.internal.example.com" \ altname="IP=192.168.1.1,DNS=pkg-sec.internal.example.com" \ format=pem outcsr=apache.csr
次のコマンドを使用して CSR に署名します。SSLCertificateFile には server.crt を使用します。
$ pktool signcsr signkey=apacheCA csr=apache.csr serial=0x02 \ outcert=server.crt issuer="CN=apachetest"
次のコマンドを使用して鍵を抽出します。SSLCertificateKeyFile には server.key を使用します。
$ pktool export objtype=key label=apache outformat=pem \ outfile=server.key
クライアントがこのサーバー鍵を受け入れるようにするには、クライアントシステムの受入済み CA ディレクトリに CA 証明書 (apacheCA) を追加し、ca-certificates サービスを再起動して、OpenSSL に必要なリンクを作成します。
次のコマンドを使用して CA 証明書を抽出します。
$ pktool export label=apacheCA objtype=cert outformat=pem \ outfile=test_server_ca.pem
CA 証明書をクライアントマシンの CA 証明書ディレクトリにコピーします。
$ cp /path-to/test_server_ca.pem /etc/certs/CA/
CA 証明書サービスを再起動します。
$ svcadm refresh ca-certificates
続行する前に、新しい CA 証明書がリンクされていることを確認します。リフレッシュしたあと、ca-certificate サービスは /etc/openssl/certs ディレクトリにリンクを再構築します。次のコマンドを実行して、新しい CA 証明書がリンクされているかどうかを確認します。
$ ls -l /etc/openssl/certs | grep test_server_ca.pem lrwxrwxrwx 1 root root 40 May 1 09:51 e89d96e0.0 -> ../../certs/CA/test_server_ca.pem
ハッシュ値 e89d96e0.0 は、証明書の subject に基づいているため、異なる場合があります。