ファイアウォールの自己署名証明書作成方法

ファイアウォールなどのアプライアンス機器にhttps(SSL)でWebUIに接続すると、「この Web サイトのセキュリティ証明書には問題があります。」とエラーが表示されます。これは、ファイアウォールが提示するサーバ証明書をブラウザ内のルート証明書で妥当性検証できないために発生しています。

本事象を発生させないために必要な自己署名証明書の作成方法を調べましたのでまとめています。また、UTMやロードバランサに搭載されているSSL可視化機能(SSLインサイト/SSLインスペクション)の際にも自己署名証明書が必要になりますが、同様の方法で作成が可能です。
 

スポンサーリンク

サーバ証明書の妥当性検証

自己署名証明書の作成方法の前に、サーバ証明書の妥当性検証についてまとめます。

サーバ証明書の役割の1つに、「正規のウェブサイトであることの証明」があります。こちらは、ユーザがウェブサイトに接続してサーバ証明書をダウンロードした際、ブラウザ内にあるルート証明書でサーバ証明書が正規の認証局(Symantecなど)で署名されたことを確認することで、本機能を実現しています。

自己署名証明書とは、このルート証明書を自作してサーバ証明書に(勝手に)署名を行い、サーバ証明書をウェブサイトに、自作のルート証明書をブラウザにインポートすることで、あたかも正規にサーバ証明書の妥当性検証ができているように見せかけることでエラーを回避しています。(つまり、何らセキュリティ的には向上していません。)

 

自己署名証明書の作成方法

①事前準備
自己署名証明書はLinuxのOpenSSLで作成します。OpenSSLがインストールされていない場合は、以下のコマンドでインストールします。

# yum -y install openssl

 

②ファイアウォールでのcsr作成
証明書の元となるcsrをファイアウォールで作成します。PaloAlto PAの場合には、

[Device]→[証明書]→[csr]

から作成が可能です。この際、対象のウェブサイトとcsrのFQDNを合わせる必要があります。
 

③openssl.cnfの編集
「/etc/pki/tls/openssl.cnf 」にて以下を修正
※openssl.cnfの格納場所が違うケースもあるので、その場合はfindで捜索。

dir = /etc/ssl/CA

 

④作業フォルダ作成
以下コマンドで作業フォルダを作成します。

# mkdir -p /etc/ssl/CA/certs
# mkdir -p /etc/ssl/CA/private
# mkdir -p /etc/ssl/CA/crl
# mkdir -p /etc/ssl/CA/newcerts
# mkdir -p /etc/ssl/CA/csr

 

⑤秘密鍵格納場所の権限指定
秘密鍵が格納される場所にアクセス権限を付与します。

# chmod 700 private

 

⑥シリアル初期化
証明書発行のシリアル値を格納するファイルを作成し、01を記入しておきます。

# echo “01” > /etc/ssl/CA/serial

 

⑦証明書データベース初期化
証明書のデータベースとなるindex.txtを空ファイルとして作成します。

# touch /etc/ssl/CA/index.txt

 

⑧秘密鍵作成
CA証明書と対になる秘密鍵を作成します。

# openssl genrsa -aes256 -out private/cakey.pem 2048

 

⑨CA証明書作成
⑧の秘密鍵をもとにCA証明書を作成し、作業フォルダにコピーします。

# openssl req -config /etc/pki/tls/openssl.cnf -key private/cakey.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out certs/cacert.pem
# cp -p certs/cacert.pem cacert.pem

 

⑩サーバ証明書作成
csrにCA証明書で署名を行い、サーバ証明書を作成します。

# openssl ca -config /etc/pki/tls/openssl.cnf -extensions v3_ca -days 3650 -notext -md sha256 -in csr/cert_firewall.csr -out newcerts/cert_firewall.pem -policy policy_anything

 

⑪CA証明書インポート
クライアントのInternetExplorerで[インターネットオプション]→[コンテンツ]→[証明書]を開き、信頼されたルート証明機関のタブで⑨にて作成したCA証明書(pemファイル)のインポートを行います。
 

⑫サーバ証明書インポート
⑨⑩で作成したCA証明書・サーバ証明書(pemファイル)をファイアウォールにインポートします。

以上にて、作業完了です。

 

スポンサーリンク
 

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください