Windows Server 2003 による Active Directory 環境下で Linux サーバを運用していると、Linux で構築した認証局 (CA) ではなく、Windows Server 2003 の「認証機関」(CA とします) にサーバ証明書をリクエストしたくなる時があります。
「Linux 用の証明書なら Linux で openssl をインストールして発行すれば?」
と思うかもしれません。SSL サーバ証明書を年額払って購入するは別として、自前の Linux サーバで発行した場合、「オレオレ証明書」を受け取った IE7 に「証明書のエラー」と言われ赤く表示されたり、Windows メール (Outlook Express) から Linux ディストリビューションな POP3s / IMAPs サーバに「このサーバーを使用し続けますか?」と言われギョッとすることがあります。
Windows Server 2003 の CA を使うと、ルートCA の証明書が Active Directory により配布されるために、クライアント PC が AD ドメインに参加していれば、これらのメッセージを見なくても済むわけです。
準備
- Linux 側に OpenSSL をインストール (ここでは CentOS5.1 とします)
- Windows 2003 Server 側に「証明書サービス CA」「証明書サービス Web 登録のサポート」をインストール
OpenSSL でサーバ証明書リクエストを発行する
- /bin/su –
- cd /etc/pki/tls/certs
- make server.key
- openssl -in server.key -out server.key
- make server.csr
(いくつか質問されますが、Common Name は Linux サーバの FQDN である必要があります。 e.g. www.yourdomain.co.jp )
これで CSR ファイルができます。
Windows Server 2003 証明機関で証明書を発行する
- Web 管理ツールを開く
- [証明書を要求する] をクリック
- [証明書の要求の詳細設定] をクリック
- [Base64 エンコード CMC または PKCS #10 ファイルを使用して証明書の要求を送信する…] をクリック
- [Base64 エンコード証明書要求] の欄に server.csr の内容をメモ帳などで開き、コピー & ペーストする
- [証明書テンプレート] を [Web サーバー] にする
- [送信] ボタンをクリック
- Base 64 形式を選択し、証明書ファイル (certnew.cer) をダウンロード
OpenSSL 側でサーバ証明書をセットアップ
- 受け取ったファイルを /etc/pki/tls/certs に置いたとする
- cd /etc/pki/tls/certs
- chmod 400 server.key server.cer
- rm -f server.csr
あとは、証明書を使用する側のアプリケーション (e.g. apache) から、
- 秘密鍵 server.key
- 公開鍵 server.cer
を参照するように設定します。
コメントを残す
コメントを投稿するにはログインしてください。