2

基本的に、パブリック IP ボットのパブリック ホスト名のないテスト サーバー (Linux ベース) があります。そのため、IPアドレスを使用してssl証明書を作成しようとしています. 私の Java アプリケーションが IP アドレスを使用して別のアプリケーションにアクセスできるようにするには、次のようにします。

https://210.10.10.10:8443/abc

以下の投稿に従いました: SSL証明書サーバー名はどのように解決されますか/キーツールを使用して代替名を追加できますか?

この例外を回避するために提案された両方の方法を試しましたが、機能していません。同じエラーが発生しています。

  1. 「openssl.cnf」を編集して追加してみました:

     [req]
      req_extensions = v3_req
    
     [ v3_req ]
    
      # Extensions to add to a certificate request
      subjectAltName=IP:210.10.10.10
      # or subjectAltName=DNS:www.example.com
    
      basicConstraints = CA:FALSE
      keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    

2. また、Java 1.7 keytool を使用してみました:

作成のように (Java 1.7 を持つ Windows で作成され、Java 1.6 で実行されているすべての証明書と jks ファイルを Linx サーバー環境にコピーしました):

    keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore myServerKeystore2.jks -srckeystore serverCertAsPK12.p12  -srcstoretype PKCS12 -alias servercertificate -ext SAN=ip:210.10.10.10

私の環境設定は以下のようなものです: サーバーは Linux (CentOS)、Tomcat 6、JDK 1.6、アプリケーションは JAVA アプリケーションです Openssl を使用してすべての証明書と JKS を作成しました

まだ java.security.cert.CertificateException を取得中: サブジェクトの代替名の例外がありません。

次に、JKS ファイルを作成しようとし、Windows マシンで keytool (Java 1.7 env) を使用してデフォルトの javastore ファイル (cacerts) にインポートし、これらの JKS および cacert ファイルを Linux サーバーにエクスポートしました。

次に、まだ java.security.cert.CertificateException: No subject alternative names Exception も取得しています。

-------ブルーノへの返信で6月19日に以下を更新---------

以下は私のtomcat server.xml設定です:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           truststoreFile="/usr/local/apache-tomcat-6.0.37/conf/cacerts.jks" truststorePass="changeit"
           keystoreFile="/usr/local/apache-tomcat-6.0.37/conf/myServerKeystore2.jks" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS" />

ここで、「cacerts.jks」はクライアント キーストア ファイルで、「myServerKeystore2.jks」はサーバー キーストア ファイルです。

このチュートリアルの各手順に従って、openssl を使用して ssl 証明書を作成しました。

助けてください。

4

0 に答える 0