Skip to content

Commit 4269d23

Browse files
author
Matthew Sackman
committed
Making java tests reflect new structure of certificates and also use pkcs12 keycert store
1 parent 8d55401 commit 4269d23

File tree

3 files changed

+55
-32
lines changed

3 files changed

+55
-32
lines changed

build.xml

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@
112112
<property name="SSL_CERTS_DIR" value="${env.SSL_CERTS_DIR}"/>
113113
<available property="SSL_AVAILABLE" file="${SSL_CERTS_DIR}/client"/>
114114
<property name="CLIENT_KEYSTORE_PHRASE" value="bunnies"/>
115+
<property environment="env"/>
116+
<property name="SSL_P12_PASSWORD" value="${env.PASSWORD}"/>
115117
</target>
116118

117119
<target name="make-client-keystore" if="SSL_AVAILABLE" depends="detect-ssl">
@@ -123,35 +125,37 @@
123125
<arg value="-alias"/>
124126
<arg value="server1"/>
125127
<arg value="-file"/>
126-
<arg value="${SSL_CERTS_DIR}/server/cert.pem"/>
128+
<arg value="${SSL_CERTS_DIR}/testca/cacert.pem"/>
127129
<arg value="-keystore"/>
128130
<arg value="${CLIENT_KEYSTORE}"/>
129131
<arg value="-noprompt"/>
130132
<arg value="-storepass"/>
131133
<arg value="${CLIENT_KEYSTORE_PHRASE}"/>
132134
</exec>
133-
<exec executable="keytool" failonerror="true" osfamily="unix" inputstring="\n\n">
134-
<arg value="-genkey"/>
135+
<exec executable="mktemp" outputproperty="CLIENT_KEYSTORE_EMPTY" failonerror="true" osfamily="unix">
136+
<arg value="-u"/>
137+
</exec>
138+
<!-- can't create an empty keystore, so add cert in and then delete it! -->
139+
<exec executable="keytool" failonerror="true" osfamily="unix">
140+
<arg line="-import"/>
141+
<arg value="-alias"/>
142+
<arg value="server1"/>
143+
<arg value="-file"/>
144+
<arg value="${SSL_CERTS_DIR}/testca/cacert.pem"/>
135145
<arg value="-keystore"/>
136-
<arg value="${CLIENT_KEYSTORE}"/>
146+
<arg value="${CLIENT_KEYSTORE_EMPTY}"/>
137147
<arg value="-noprompt"/>
138148
<arg value="-storepass"/>
139149
<arg value="${CLIENT_KEYSTORE_PHRASE}"/>
140-
<arg value="-dname"/>
141-
<arg value="CN=test, OU=test, O=test, L=test, S=test, C=pluto"/>
142150
</exec>
143-
<exec executable="mktemp" outputproperty="CLIENT_KEYSTORE_EMPTY" failonerror="true" osfamily="unix">
144-
<arg value="-u"/>
145-
</exec>
146-
<exec executable="keytool" failonerror="true" osfamily="unix" inputstring="\n\n">
147-
<arg value="-genkey"/>
151+
<exec executable="keytool" failonerror="true" osfamily="unix">
152+
<arg line="-delete"/>
153+
<arg value="-alias"/>
154+
<arg value="server1"/>
148155
<arg value="-keystore"/>
149156
<arg value="${CLIENT_KEYSTORE_EMPTY}"/>
150-
<arg value="-noprompt"/>
151157
<arg value="-storepass"/>
152158
<arg value="${CLIENT_KEYSTORE_PHRASE}"/>
153-
<arg value="-dname"/>
154-
<arg value="CN=test, OU=test, O=test, L=test, S=test, C=pluto"/>
155159
</exec>
156160
</target>
157161

@@ -337,7 +341,10 @@
337341
<classpath refid="test.classpath"/>
338342
<jvmarg value="-Dkeystore.path=${CLIENT_KEYSTORE}"/>
339343
<jvmarg value="-Dkeystore.empty.path=${CLIENT_KEYSTORE_EMPTY}"/>
340-
<jvmarg value="-Dkeystore.phrase=${CLIENT_KEYSTORE_PHRASE}"/>
344+
<jvmarg value="-Dkeystore.passwd=${CLIENT_KEYSTORE_PHRASE}"/>
345+
346+
<jvmarg value="-Dp12.path=${SSL_CERTS_DIR}/client/keycert.p12"/>
347+
<jvmarg value="-Dp12.passwd=${SSL_P12_PASSWORD}"/>
341348

342349
<formatter type="plain"/>
343350
<formatter type="xml"/>

test/src/com/rabbitmq/client/test/ssl/BadVerifiedConnection.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,26 +54,34 @@ public class BadVerifiedConnection extends UnverifiedConnection {
5454
public void openConnection()
5555
throws IOException
5656
{
57-
connectionFactory = new ConnectionFactory();
5857
try {
5958
String keystorePath = System.getProperty("keystore.empty.path");
6059
assertNotNull(keystorePath);
61-
String keystorePasswd = System.getProperty("keystore.phrase");
60+
String keystorePasswd = System.getProperty("keystore.passwd");
6261
assertNotNull(keystorePasswd);
63-
char [] passphrase = keystorePasswd.toCharArray();
62+
char [] keystorePassword = keystorePasswd.toCharArray();
6463

65-
KeyStore ks = KeyStore.getInstance("JKS");
66-
ks.load(new FileInputStream(keystorePath), passphrase);
67-
68-
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
69-
kmf.init(ks, passphrase);
64+
KeyStore tks = KeyStore.getInstance("JKS");
65+
tks.load(new FileInputStream(keystorePath), keystorePassword);
7066

7167
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
72-
tmf.init(ks);
68+
tmf.init(tks);
7369

70+
String p12Path = System.getProperty("p12.path");
71+
assertNotNull(p12Path);
72+
String p12Passwd = System.getProperty("p12.passwd");
73+
assertNotNull(p12Passwd);
74+
KeyStore ks = KeyStore.getInstance("PKCS12");
75+
char [] p12Password = p12Passwd.toCharArray();
76+
ks.load(new FileInputStream(p12Path), p12Password);
77+
78+
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
79+
kmf.init(ks, p12Password);
80+
7481
SSLContext c = SSLContext.getInstance("SSLv3");
7582
c.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
7683

84+
connectionFactory = new ConnectionFactory();
7785
connectionFactory.useSslProtocol(c);
7886
} catch (NoSuchAlgorithmException ex) {
7987
throw new IOException(ex.toString());

test/src/com/rabbitmq/client/test/ssl/VerifiedConnection.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,27 @@ public void openConnection()
5757
try {
5858
String keystorePath = System.getProperty("keystore.path");
5959
assertNotNull(keystorePath);
60-
String keystorePasswd = System.getProperty("keystore.phrase");
60+
String keystorePasswd = System.getProperty("keystore.passwd");
6161
assertNotNull(keystorePasswd);
62-
char [] passphrase = keystorePasswd.toCharArray();
62+
char [] keystorePassword = keystorePasswd.toCharArray();
6363

64-
KeyStore ks = KeyStore.getInstance("JKS");
65-
ks.load(new FileInputStream(keystorePath), passphrase);
66-
67-
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
68-
kmf.init(ks, passphrase);
64+
KeyStore tks = KeyStore.getInstance("JKS");
65+
tks.load(new FileInputStream(keystorePath), keystorePassword);
6966

7067
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
71-
tmf.init(ks);
68+
tmf.init(tks);
7269

70+
String p12Path = System.getProperty("p12.path");
71+
assertNotNull(p12Path);
72+
String p12Passwd = System.getProperty("p12.passwd");
73+
assertNotNull(p12Passwd);
74+
KeyStore ks = KeyStore.getInstance("PKCS12");
75+
char [] p12Password = p12Passwd.toCharArray();
76+
ks.load(new FileInputStream(p12Path), p12Password);
77+
78+
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
79+
kmf.init(ks, p12Password);
80+
7381
SSLContext c = SSLContext.getInstance("SSLv3");
7482
c.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
7583

0 commit comments

Comments
 (0)