はじめに
このドキュメントでは、CVPでSHA256を使用する手順について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、CVP 10.5に基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
2016年1月以降、すべてのブラウザがSHA1署名付き証明書を拒否しました。SHA1からSHA256に移行しない限り、要求されたサービスは正しくレンダリングされませんでした。
計算アルゴリズムの最近の発展と爆発的な計算能力により、SHA1は日増しに弱くなっています。これにより、SHA1の基本的な劣化衝突耐性が実現し、最終的に停止しました。
設定
CVP Operations Console(OAMP)間での証明書交換手順:
OAMP上
ステップ 1:OAMP証明書のエクスポート
c:\Cisco\CVP\jre\bin\keytool.exe -export -v -keystore .keystore -storetype JCEKS -alias oamp_certificate -file oamp_security_76.cer
ステップ 2:OAMP証明書をCallserverにコピーしてインポートします。
c:\Cisco\CVP\jre\bin\keytool.exe -import -trustcacerts -keystore .keystore -storetype JCEKS -alias orm_oamp_certificate -file oamp_security_76.cer
通話中のサーバ
ステップ 1:Callserver証明書のエクスポート
c:\Cisco\CVP\jre\bin\keytool.exe -export -v -keystore .ormkeystore -storetype JCEKS -alias orm_certificate -file orm_security_108.cer
ステップ 2:CALLSERVER証明書をOAMPにコピーしてインポートします。
c:\Cisco\CVP\jre\bin\keytool.exe -import -trustcacerts -keystore .keystore -storetype JCEKS -alias oamp_orm_certificate -file orm_security_108.cer
ステップ 3:Call Serverキーストアのフォーム証明書をエクスポートします。
C:\Cisco\CVP\conf\security>c:\Cisco\CVP\jre\bin\keytool.exe -import -trustcacerts -keystore .keystore -storetype JCEKS -alias vxml_orm_certificate -file orm_security_108.cer
確認
コンポーネント間でセキュアな通信が確立されているかどうかを検証できます。OAMP Page > Device management > <managed server> > Statisticsの順に移動します。
統計情報を表示する必要があります。
セキュリティが適切に設定されている場合は、JConsoleを使用して接続を確立できます。
ステップ1:OAMPのc:\Cisco\CVP\conf\orm_jmx.confは次のようになります。
javax.net.debug = all
com.sun.management.jmxremote.ssl.need.client.auth = false
com.sun.management.jmxremote.authenticate = false
com.sun.management.jmxremote.port = 2099
com.sun.management.jmxremote.ssl = true
javax.net.ssl.keyStore=C:\Cisco\CVP\conf\security\.ormkeystore
javax.net.ssl.keyStorePassword=<local security password>
ステップ 2:コマンドからjconsoleを開きます。 コマンドを使用します
C:\Cisco\CVP\jre\bin>jconsole.exe -J-Djavax.net.ssl.trustStore=C:\Cisco\CVP\conf\security\.keystore -J-Djavax.net.ssl.trustStorePassword=<oamp security password/jconsole client> -J-Djavax.net.ssl.keyStore=C:\Cisco\CVP\conf\security\.keystore -J-Djavax.net.ssl.keyStorePassword=<oamp security password/jconsole client> -J-Djavax.net.ssl.keyStoreのタイプ jceks -debug -J-Djavax.net.ssl.trustStoreType=JCEKS
<managed server ip>:<secure jmx port eg:2099>をRemote Processフィールドに入力します。
注:JConsoleは、セキュアな方法をバイパスするようにアプリケーションに指示することなく接続する必要があります。
ステップ 3:jconsole接続が呼び出されている間のWiresharkこのキャプチャにより、セキュリティハンドシェイク中にネゴシエートされた詳細を把握できます。
JMXでのトレース
JMXの実装では、java.util.loggingを使用して、デバッグトレースをログに記録します。これらのトレースの多くは、公開されていない内部クラスに関するものですが、アプリケーションで何が行われているかを理解するのに役立ちます。
JMX実装には、ロガーが2セットあります。
javax.management.\*
: JMX APIに関連するすべてのロガー
javax.management.remote.\*
: JMXリモートAPIに特に関連するロガー
JMXロガーの詳細な説明については、こちらを参照してください。
JMXトレースは、次の2つの方法でアクティブ化できます。
- logging.propertiesファイルを使用した静的なロギング
- JMXTracing MBeanを使用して動的に学習します。Java SE 6では、JMXコネクタがコマンドラインで有効になっていない場合でも、アプリケーションに対してこれを実行できます。
logging.propertiesファイルを使用する
次のフラグを使用してアプリケーションを起動します。
java -Djava.util.logging.config.file=<logging.properties> ....
ここで、logging.propertiesはJMXロガーのトレースをアクティブにします。
handlers= java.util.logging.ConsoleHandler
.level=INFO
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
// Use FINER or FINEST for javax.management.remote.level - FINEST is
// very verbose...
//
javax.management.level=FINEST
javax.management.remote.level=FINER