1

SSLを使用してJBossを実行しています。証明書はopensslで生成されます。

      <Connector protocol="HTTP/1.1" SSLEnabled="true" 
       port="8443" address="${jboss.bind.address}"
       scheme="https" secure="true" clientAuth="false" 
       keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
       keystorePass="password" sslProtocol = "TLS" />

私のクライアントは、GraniteDSを介してJavaEEサーバーと対話するAIRアプリケーションです。Flex / AIR側では、services-config.xmlでチャネルをSecureAMFChannelに更新しました。

<channel-definition id="myApp-graniteamf" class="mx.messaging.channels.SecureAMFChannel">
        <endpoint uri="https://localhost:8443/myApp/graniteamf/amf"
        class="flex.messaging.endpoints.SecureAMFEndpoint" />
    </channel-definition>

これで、クライアントから接続すると、AIRは接続を続行するかどうかを尋ねてきます(証明書の表示など)。

私はSSL/HTTPSの概念全体に不慣れですが、いくつかのドキュメントを読みました。私が今理解しようとしているのは、サーバーが安全であることをアプリに知らせる方法です(この場合はローカルホスト)。これまでのところ、クライアントアプリケーションは「サーバーをCAとして信頼する」か、特定のサーバーからの証明書を信頼する必要があります。

AIRクライアント側アプリケーションでこれをどこから実装し始めるかについての手がかりを教えてください。

4

1 に答える 1

2

私が正しく理解していれば、あなたは自己署名証明書を使用しています。その仮定に基づいて、AIRアプリを介してユーザーに証明書を受け入れるように強制することはできません。これはセキュリティホールになります。AIRアプリから電話を信頼できるようにするには、ユーザーは自分の証明書(または証明書に署名した信頼できないCA)を自分のキーストアにインポートする必要があります。

これを行う方法はOSごとに異なりますが、Windowsで行う方法の例は、IEでサーバーを参照し、証明書の警告を取得し、証明書の詳細を表示してから、証明書をファイル(X509 iirc)にエクスポートすることです。次に、証明書ファイルを右クリックして、証明書のインストールを選択できます。

その後、そのセキュリティで保護されたサーバーへの後続のすべての呼び出しは信頼される必要があります。

于 2010-06-02T21:27:46.347 に答える