-1

私のシステムには 1 つのサーバーがインストールされています。IP アドレスの 1 つを取得し、独自のシステムとして機能します。

私のJavaプログラムでは、次のコードを使用してそのサーバーに接続します。

ServiceInstance si = new ServiceInstance(new URL("https://10.100.13.36/sdk"), "user", "password", true);

true は、無視証明書が true であることを示します。

false パラメータで実行しようとすると、次のエラーが表示されます。

CertificateException: No subject alternative names matching IP address 10.100.13.36 found

サーバーの証明書モードの場合、IPアドレスの代わりにDNS名を使用する必要があることがわかりました。

サーバーの構成設定で、サーバーがDNS名をlocalhost.localdomainとして取っていることがわかりました

だから私はhttps://localhost.localdomain/sdkとしてURLを試しました

localhost.locadomain が見つからないというエラーが表示されました。

私のシステムとlocalhost.localdomain私のサーバーのDNS名としてlocalhostを使用したDNS名前解決に問題があると思います。

Javaプログラムを介してIPアドレスを指定してDNS名を見つけることができますか.DNS名を独自に見つけて、URLに値を渡します.

誰かがこれについて何か提案をすることができますか?

ありがとうございました..

4

1 に答える 1

0

DNS 名は、ローカル DNS サーバーによって割り当てられます。この名前localhost.localdomainは通常、ホスト ファイルで割り当てられるため、さまざまなローカル操作が機能します (たとえば、システム ログ、定期的なタスクからの root ユーザーへの電子メールの送信など)。サーバーがローカル DNS サーバーに登録されていないと思います。ローカルで実行されている仮想マシンが実際に DNS に有効に登録されていることはまれです。これは、特に Windows 環境で実行されている Linux システムに当てはまります。

DNS に登録されていて、サーバーとクライアントの両方が同じ DNS 階層を使用している場合java.net.InetAddressは、マシンの IP アドレスを使用して を作成し、getCanonicalHostName()その DNS 名を取得するために呼び出すだけです。ローカル DNS サーバーに名前が登録されていない場合は、単に IP アドレスが返されます。

于 2012-06-03T12:13:52.810 に答える