16

Hudson JIRA プラグインをセットアップしようとしています。当社の JIRA サーバーは、自己署名 SSL 証明書で保護されています。keytool コマンドを使用して Web ブラウザに保存されている証明書を挿入し、Hudson に見つけてもらいました。しかし今、それは不平を言います:

java.security.cert.CertificateException: No subject alternative names present

証明書の共通名が「不明」で、証明書にサブジェクトの代替名が表示されない

$ openssl x509 -in Unknown -text -noout
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 1214507595 (0x4863ea4b)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=US, ST=NJ, L=[Our town], O=[Our company], OU=[Our project], CN=Unknown
        Validity
            Not Before: Jun 26 19:13:15 2008 GMT
            Not After : May  5 19:13:15 2018 GMT
        Subject: C=US, ST=NJ, L=[Our town], O=[Our company], OU=[Our project], CN=Unknown
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                [omitted]
    Signature Algorithm: md5WithRSAEncryption
        [omitted]

(識別情報は編集され、括弧内に注記されています。)

サブジェクトの代替名をこの証明書に添付する方法はありますか? それとも何か他の方法がありますか?それとも、Hudson Jira プラグインをハックする必要がありますか?

4

3 に答える 3

23

Jira サーバーへのアクセスに使用されるホスト名 (例: https://jira.acme.com/jira.acme.com )は 、サブジェクト名のフィールドの1 つと一致するか、一致しない場合は次のいずれかである必要があります。証明書。CNSubject Alternative Name

これについては、RFC 2818で詳しく説明されています。

場合によっては、URI がホスト名ではなく IP アドレスとして指定されます。この場合、iPAddress subjectAltName が証明書に存在し、URI の IP と正確に一致する必要があります。

CNあなたの場合、 (「不明」) もSubject Alternative Name(何もないため) も Jira サーバーのホスト名と一致しなかったため、Java は不平を言っています。

したがって、次のように、適切なCNを使用して証明書を生成しkeytoolます。

キーペアと自己署名証明書を作成するには

$ keytool -genkey -alias jira_acme_com -keyalg RSA -keysize 2048 -validity 365 -keystore jira_acme_com.jks
キーストアのパスワードを入力してください:  
新しいパスワードを再入力してください:
あなたの姓名は何ですか?
  [不明]: jira.acme.com
組織単位の名前は何ですか?
  [不明]: 私たちのプロジェクト
あなたの組織の名前は何ですか?
  【不明】:当社
あなたの都市または地方の名前は何ですか?
  [不明]: 私たちの町
あなたの州または県の名前は何ですか?
  [不明]: NJ
このユニットの 2 文字の国コードは?
  [不明]: 米国
CN=jira.acme.com、OU=私たちのプロジェクト、O=私たちの会社、L=私たちの町、ST=NJ、C=US は正しいですか?
  [いいえ]: はい

の鍵パスワードを入力してください
        (キーストアのパスワードと同じ場合は RETURN):

個人情報を閲覧するには

$ keytool -list -v -keystore jira_acme_com.jks
キーストアのパスワードを入力してください:  

キーストアのタイプ: JKS
キーストア プロバイダー: SUN

キーストアには 1 つのエントリが含まれています

エイリアス名: jira_acme_com
作成日: 2010 年 9 月 4 日
エントリの種類: PrivateKeyEntry
証明書チェーンの長さ: 1
証明書[1]:
所有者: CN=jira.acme.com、OU=私たちのプロジェクト、O=私たちの会社、L=私たちの町、ST=NJ、C=US
発行者: CN=jira.acme.com、OU=私たちのプロジェクト、O=私たちの会社、L=私たちの町、ST=NJ、C=US
シリアル番号: 4c81e9a9
有効期間: 2010 年 9 月 4 日 (土) 10:39:37 (CEST) から: 2011 年 9 月 4 日 (日) 10:39:37 (CEST)
証明書のフィンガープリント:
     MD5: 15:6A:E3:14:E2:78:F4:95:41:E6:33:C9:F8:8B:64:23
     SHA1: CD:A6:9A:84:18:E8:62:50:2C:DC:2F:89:22:F6:BA:E9:1A:63:F6:C6
     署名アルゴリズム名: SHA1withRSA
     バージョン: 3

そして、キーストアを使用するようにTomcatをセットアップします。

マルチホーム証明書を作成する場合は、OpenSSL を使用する必要があります (キーツールはサブジェクトの別名などの X509 拡張機能を追加できません)。これらのリンクは優れたリソースです。

更新:証明書を変更できないことを考えると (実際に言及する必要がありました)、一時的な解決策は/etc/hosts、必要なマシンのローカル ファイルを変更しUnknownて、マシンの実際の IP に解決することです。

123.123.123.123    Unknown

これらのマシンからhttps://Unknown/にアクセスできるようにします。しかし、明らかに、これは実際の解決策というよりも汚いハックであり、スケーリングしません。

管理者に連絡して真の「適切な」証明書を取得することは、依然として真の優れたソリューションです。

資力

参考文献

于 2010-09-04T07:26:32.997 に答える
1

私が間違っていなければ、SSL では、証明書の共通名に接続しようとしているホスト名が含まれている必要があります。これにより、クライアント側は、証明書が一般的に信頼されているだけでなく、場所に対しても信頼されていることを検証できます。 .

OpenSSL で証明書を生成していると仮定しています。を設定していない理由はありますcn=[yourserver]か?

共通名で適切なホスト名が見つからない場合、プラグインはサブジェクトの代替名でそれを検索しようとし、subjectAltName がないために失敗すると、不適切なエラー メッセージが表示されることがあります。 .

とにかく、これを複数のサイトで使用している場合は、subjectAltName にホスト名が必要です。自己署名証明書を適切に作成する方法を文書化したサイトを見つけました。

http://library.linode.com/ssl-guides/subject-alt-name-ssl

お役に立てれば。

于 2010-09-04T04:03:39.673 に答える
0

考えられる解決策はいくつかありますが、それぞれに独自の一連の問題があります。

  • JIRA の新しい証明書を生成します。今回は、証明書の秘密鍵ペアを生成するときに CN を指定します。

    新しい証明書を生成できない理由がわかりません。JIRA サーバーの他のクライアントでも、説明されている証明書に関して、特にブラウザーからの警告など、いくつかの問題が発生していると確信しています。したがって、すべてのクライアント (およびクライアント アプリケーション) を再テストする必要がありますが、自己署名証明書がすべてのクライアントによって信頼されているローカル CA によって発行されている場合、これは問題ではありません。

  • DNS エントリを編集して、Hudson サーバーからの 'Unknown' へのルックアップが、JIRA がインストールされているサーバーを指すようにします [いくつかのソリューションに関連する問題があることを誰かに思い出させました :-) ]。http://Unknown/....これにより、証明書に保存されている CN の値がホスト名と一致することが保証されます。. ああ、これは非常に狭い場所にいる場合にのみ使用してください。なぜこれをしたのかを説明したくありません。
于 2010-09-09T12:28:46.257 に答える