1

我对这一切都很陌生:但我正在努力实现以下目标:

  1. 创建一个“证书颁发机构”(完成:使用 openssl)。
  2. 为 Tomcat 创建一个 priv/pub 密钥对(完成:使用 keytool)。
  3. 创建一个“证书签名请求”(完成:使用 keytool)。
  4. 执行“证书签名请求”(完成:使用 openssl,使用“CA”签名)。
  5. 将 CA(当然是自签名的)安装回我的(默认 JDK 的)Tomcat 的密钥库中。
  6. 将生成的 CA 签名证书安装回(默认 JDK 的)Tomcat 的密钥库(用于步骤 5 和 6 的密钥工具)。

所以现在我的 Tomcat(JDK 默认)密钥库包含:

  1. 我的私钥/公钥对。
  2. CA 的公钥/自签名证书。
  3. 我的 CA 签名证书。

但是当我用 openssl 联系我的主机时:只有原始的自签名证书是(测试和输出见下文)。

Tomcat 如何决定在 SSL 握手中返回哪个证书路径?查找主题为“tomcat”或其他内容的证书是否经过硬编码?

我正在使用 JDK 1.6,使用 JSSE,而不是 Tomcat 的 APR 选项。

TEST 只返回原始自签名证书,而不是证书链,包括 CA。

openssl s_client -connect myhost:443 -showcerts

给出:

CONNECTED(00000003)
depth=0 /C=ai/ST=all/L=virtualworldone/O=computers/OU=appserver/CN=tomcat
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=ai/ST=all/L=virtualworldone/O=computers/OU=appserver/CN=tomcat
verify return:1
---
Certificate chain
 0 s:/C=ai/ST=all/L=virtualworldone/O=computers/OU=appserver/CN=tomcat
   i:/C=ai/ST=all/L=virtualworldone/O=computers/OU=appserver/CN=tomcat
-----BEGIN CERTIFICATE-----
MIIDFjCCAtOgAwIBAgIEVAHmITALBgcqhkjOOAQDBQAwbjELMAkGA1UEBhMCYWkx
DDAKBgNVBAgTA2FsbDEYMBYGA1UEBxMPdmlydHVhbHdvcmxkb25lMRIwEAYDVQQK
Ewljb21wdXRlcnMxEjAQBgNVBAsTCWFwcHNlcnZlcjEPMA0GA1UEAxMGdG9tY2F0
MB4XDTE0MDgzMDE0NTYzM1oXDTE0MTEyODE0NTYzM1owbjELMAkGA1UEBhMCYWkx
DDAKBgNVBAgTA2FsbDEYMBYGA1UEBxMPdmlydHVhbHdvcmxkb25lMRIwEAYDVQQK
Ewljb21wdXRlcnMxEjAQBgNVBAsTCWFwcHNlcnZlcjEPMA0GA1UEAxMGdG9tY2F0
MIIBtzCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9E
AMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f
6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv
8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtc
NrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwky
jMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/h
WuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYQAAoGARLJHatLfQCV7HKKW9h4/sGPHHwK7
iGs6wEXeGBlE4J2NDpFJKe5yetWeHDTPCnW50ljZZiZ43jhO1kZyV27dBl/udA+z
xXessJnev5ureJCWrK8CEqKKnU8VneF7EcegjNQpJ85M4yhHW0G5J49wYZtFhDnq
EP5cRrUM6YflenAwCwYHKoZIzjgEAwUAAzAAMC0CFQCIuTbUq36Kq7lRMIy15Lt0
W+8AXgIUeepTbUyDcsU0nV/OYYIfuPVT2yM=
-----END CERTIFICATE-----
---
Server certificate
subject=/C=ai/ST=all/L=virtualworldone/O=computers/OU=appserver/CN=tomcat
issuer=/C=ai/ST=all/L=virtualworldone/O=computers/OU=appserver/CN=tomcat
---
No client certificate CA names sent
---
SSL handshake has read 1284 bytes and written 276 bytes
---
New, TLSv1/SSLv3, Cipher is EDH-DSS-DES-CBC3-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : EDH-DSS-DES-CBC3-SHA
    Session-ID: 540204AA630D80A7000E9AEC0AE738E6F0FCCC9EAE1D64F69956BCDFFADAC23A
    Session-ID-ctx:
    Master-Key: 338FCE3A028B2E8DFBF57F99609A6056973FB3D62722C192DF52F38B5A1FFDDAF79AD52327C18E7D99C226D34918D646
    Key-Arg   : None
    Start Time: 1409418410
    Timeout   : 300 (sec)
4

0 回答 0