Documentation/Tutorials/Red5DeveloperTips/SSLTLS

セキュアな通信

RTMPS を使用するには

1. 鍵を作成します。

keytool -keysize 2048 -genkey -alias red5 -keyalg RSA -keystore keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?  [Unknown]:  ssl.red5.org
What is the name of your organizational unit?  [Unknown]:  Dev
What is the name of your organization?  [Unknown]:  Red5
What is the name of your City or Locality?  [Unknown]:  Henderson
What is the name of your State or Province?  [Unknown]:  Nevada
What is the two-letter country code for this unit?  [Unknown]:  US
Is CN=ssl.red5.org, OU=Dev, O=Red5, L=Henderson, ST=Nevada, C=US correct?  [no]:  yes

Enter key password for <red5>
        (RETURN if same as keystore password):

2. CSR を作成します。

keytool -certreq -keyalg RSA -alias red5 -file red5.csr -keystore keystore
Enter keystore password:

3. 作成した CSR を SSL 証明書プロバイダに提出します。以下の説明は Godaddy を利用した場合の手順です。

4. 証明書を受け取ったら、keystore ファイルにルート証明書をインポートします。

keytool -import -alias root -keystore keystore -trustcacerts -file valicert_class2_root.crt
Enter keystore password:
Certificate already exists in system-wide CA keystore under alias <valicertclass2ca>
Do you still want to add it to your own keystore?[no]:  yes
Certificate was added to keystore

5. クロス証明書をインポートします。

keytool -import -alias cross -keystore keystore -trustcacerts -file gd_cross_intermediate.crt
Enter keystore password:
Certificate was added to keystore

6. 中間証明書をインポートします。

keytool -import -alias intermed -keystore keystore -trustcacerts -file gd_intermediate.crt
Enter keystore password:
Certificate was added to keystore

7. 証明書プロバイダから受け取った証明書をインポートします。

keytool -import -alias red5 -keystore keystore -trustcacerts -file ssl.red5.org.crt
Enter keystore password:
Certificate reply was installed in keystore

8. red5/conf/red5-core.xml で RTMPS をセットアップします。

キーストアへの PKCS12 のインポート

keytool を使った Java キーストアへの非公開鍵のインポート

長年にわたり、Java の一部として出荷されている keytool アプリケーションでは、非公開鍵と Java キーストアから証明書署名要求 (CSR) を生成するためのすべての機能が提供される一方で、最も基本的な機能、すなわち既存の非公開鍵と外部で生成された証明書をインポートする機能はおろそかにされたままでした。

しかしこれは、Java 6 になってやっと修正されました。

対処方法としては、既存の認証書と鍵を PKCS12 ファイルに変換し、ついでキーストアをほかのキーストアとマージする keytool の機能を利用します。Java 6 は PKCS12 ファイルをキーストアとして扱うことができるので、この操作を具体的に示すと次のようになります。

keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore my-keystore.jks -srckeystore cert-and-key.p12 -srcstoretype PKCS12 -srcstorepass cert-and-key-password -alias 1

alias の 1 は、ソースとなる PKCS12 ファイル内で認証書を選択するのに必要です。keytool はあまり賢くなく、証明書を 1 つ含むストアの中でどの証明書が指定されたかを判断できないからです。

 情報源はこちら

Java ネットワークのデバッグ

スタートアップファイルに次の Java オプションを追加します: -Djavax.net.debug=ssl,handshake,data

オプション:

all        turn on all debugging
ssl        turn on ssl debugging

The following can be used with ssl:
        record          enable per-record tracing
        handshake       print each handshake message
        keygen          print key generation data
        session         print session activity
        defaultctx      print default SSL initialization
        sslctx          print SSLContext tracing
        sessioncache    print session cache tracing
        keymanager      print key manager tracing
        trustmanager    print trust manager tracing

handshake debugging can be widened with:
        data            hex dump of each handshake message
        verbose         verbose handshake message printing

record debugging can be widened with:
        plaintext       hex dump of record plaintext

 JSSE Guide
 Tomcat SSL
 Keytool to OpenSSL
 Term papers
 Dealing with Java Keystores