前回
SSTPの証明書にOpenSSLを使う (1) ルートCAの作成
ルートCA証明書を作成したので、それを使ってサーバ証明書を作成したいと思います。前回の流れの 3. に相当します。2.の方は、後回しした方が良いような気がするので、流れが変わりますが、そのようにします。
証明書の発行
※前回に引き続き、この作業にCentOS 5.4を使用します。他のディストリビューション・バージョンによって、ディレクトリが異なる可能性があります。
※この作業には、前回作成したルートCA作成スクリプトを使用します。この説明では、前回作成した /etc/pki/PublicCA.sh を使用しています。
まず、CAに証明書を作成してもらうため、リクエストを作成します。この作業は、サーバ管理者が行うのですが、CA管理者と同一人物なので、気にしなくて良いです。
リクエストファイルを保管したいディレクトリをカレントワーキングディレクトリにしておきます。リクエストを作成します。
$ /etc/pki/PublicCA.sh -newreq Generating a 1024 bit RSA private key .....++++++ .......++++++ writing new private key to 'newkey.pem' Enter PEM pass phrase: ←秘密鍵のパスフレーズを入力 Verifying - Enter PEM pass phrase: ←秘密鍵のパスフレーズの確認 ----- 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]: ←デフォルト設定でEnterキーで応答 State or Province Name (full name) [Shiga]: ←デフォルト設定でEnterキーで応答 Locality Name (eg, city) [Yasu]: ←デフォルト設定でEnterキーで応答 Organization Name (eg, company) [Let's Try It!]: ←デフォルト設定でEnterキーで応答 Organizational Unit Name (eg, section) []:SSTP service ←部門名 何でも良い Common Name (eg, your name or your server's hostname) []:vpn.letstryit.net ←(!重要!)必ずアクセスするFQDNにする Email Address []:[email protected] ←電子メールアドレス 何でも良い Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: ←デフォルト設定でEnterキーで応答 An optional company name []: ←デフォルト設定でEnterキーで応答 Request is in newreq.pem, private key is in newkey.pem
これで、リクエストファイルを作成できました。newkey.pemが秘密鍵、newreq.pemがリクエストです。途中のCommon Nameは、非常に重要でこれがアクセスするURLと一致しなければSSTP(SSL/TLS)の要件を満たしません。
そのまま、CA管理者(普通はroot)に移行します。カレントワーキングディレクトリは同じ位置にしておきます。そして、リクエストを元に証明書を発行します。
# /etc/pki/PublicCA.sh -sign Using configuration from /etc/pki/tls/openssl-public.cnf Enter pass phrase for /etc/pki/PublicCA/private/cakey.pem: ←CAの秘密鍵のパスフレーズを入力 Check that the request matches the signature Signature ok Certificate Details: Serial Number: 4 (0x4) Validity Not Before: Feb 12 06:39:23 2010 GMT Not After : Feb 12 06:39:23 2011 GMT Subject: countryName = JP stateOrProvinceName = Shiga localityName = Yasu organizationName = Let's Try It! organizationalUnitName = SSTP service commonName = vpn.letstryit.net emailAddress = [email protected] X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 90:7D:A6:04:F6:9C:79:C5:0E:66:5E:22:59:D8:54:99:88:22:E0:32 X509v3 Authority Key Identifier: keyid:59:CB:99:9D:85:D3:E4:3A:42:41:04:C2:71:3D:E8:04:90:92:26:D0 Certificate is to be certified until Feb 12 06:39:23 2011 GMT (365 days) Sign the certificate? [y/n]:y ←内容を確認してyで応答 1 out of 1 certificate requests certified, commit? [y/n]y ←CAでも証明書を管理する yで応答 Write out database with 1 new entries Data Base Updated ~証明書データ(冗長なのでカット)~ Signed certificate is in newcert.pem
これで、証明書が作成されました。newcert.pemが証明書ファイルです。このままでは、Windowsに取り込みづらいので、PKCS#12(pfxファイル)形式にエクスポートします。このファイル形式は、秘密鍵と証明書を内包でき、任意のパスフレーズによって暗号化されます。
$ openssl pkcs12 -export -in newcert.pem -inkey newkey.pem -out sstp.pfx Enter pass phrase for newkey.pem: ←秘密鍵のパスフレーズ Enter Export Password: ←エクスポートするためのパスフレーズ Verifying - Enter Export Password: ←エクスポートのパスフレーズの確認入力
sstp.pfxにエクスポートできました。USBメモリ・FTPなどでコピーできるようにしておいてください。
CA証明書の自動展開
ActiveDirectory ドメインに参加しているコンピュータに自動的に証明書を配布できるようにします。配布したくなければ、この作業を止め、該当マシンに証明書をインポートしてください。
※この作業は、Windows Server 2008もしくは、Windows Server 2008 R2上で動作しているActiveDirectoryで行います。その他のバージョンに関しては、不明で動作するかわかりません。
※前回作成したCAのDER形式証明書ファイルが必要です。
[グループ ポリシーの管理]を起動します。[スタート] メニュー の[管理 ツール]にあります。
適応したいグループ ポリシーを編集します。すべてのコンピュータに配布するなら標準では、[Default Domain Policy]になっています。右クリックをして[編集...]を選んでください
[グループ ポリシー管理エディター]が起動するので、編集します。左のツリーから[コンピューターの構成]→[ポリシー]→[Windows の設定]→[セキュリティの設定]→[公開キーのポリシー]→[信頼されたルート証明機関]を選択します。
右側のリストビューで右クリックし、[インポート...]を選択して、証明書をインポートします。正しく登録されれば以下のようになります。
以上で自動配布の設定が完了します。クライアント側に適応されるまで時間がかかります。すぐに適応する場合は、Administrator権限で gpupdate を実行してください。
次回は、SSTP証明書を使ってSSTPを構築します。
やっぱ長いな
コメントする