Skip to content

Commit aee2af8

Browse files
committed
Now adding localhost also in server-tom as a Subject alternative name to the certificate, so it also support localhost (as a multi-domain certificate). Therefore we´are able to reactive the Tests. Also Travis activated.
1 parent ccdf689 commit aee2af8

File tree

9 files changed

+51
-28
lines changed

9 files changed

+51
-28
lines changed

README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
REST Client uses clientcertificate to authenticate to Spring Boot Server
22
=============================
3-
[![Build Status](https://travis-ci.org/jonashackt/spring-boot-rest-clientcertificate.svg?branch=master)](https://travis-ci.org/jonashackt/spring-boot-rest-clientcertificate)
3+
[![Build Status](https://travis-ci.org/jonashackt/spring-boot-rest-clientcertificates-docker-compose.svg?branch=master)](https://travis-ci.org/jonashackt/spring-boot-rest-clientcertificates-docker-compose)
44

55
This repository basically forks all the ground work that was done in https://github.com/jonashackt/spring-boot-rest-clientcertificate. This is a basic example, where the client certificate secured server is a Spring Boot Application and the client is just a Testcase that uses Spring´s RestTemplate which is configured to use the client certificate.
66

@@ -98,7 +98,7 @@ openssl genrsa -des3 -out tomprivate.key 1024
9898
#### 2. Certificate Signing Request (CSR): tom.csr
9999

100100
```
101-
openssl req -new -key tomprivate.key -out tom.csr
101+
openssl req -new -key tomprivate.key -out tom.csr -config tom-csr.conf
102102
```
103103

104104
__Common Name__: `server-tom`, which will later be a DNS alias inside the Docker network
@@ -107,7 +107,7 @@ __Common Name__: `server-tom`, which will later be a DNS alias inside the Docker
107107
#### 3. self-signed Certificate: tom.crt
108108

109109
```
110-
openssl x509 -req -days 3650 -in tom.csr -signkey tomprivate.key -out tom.crt
110+
openssl x509 -req -days 3650 -in tom.csr -signkey tomprivate.key -out tom.crt -extfile tom-csr.conf -extensions v3_req
111111
```
112112

113113

@@ -186,4 +186,6 @@ https://stackoverflow.com/questions/30977264/subject-alternative-name-not-presen
186186

187187
https://stackoverflow.com/questions/21488845/how-can-i-generate-a-self-signed-certificate-with-subjectaltname-using-openssl
188188

189+
--> this is not the only solution, see `-extfile` and `-extensions` CLI paramters!
190+
189191
https://serverfault.com/questions/779475/openssl-add-subject-alternate-name-san-when-signing-with-ca
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[req]
2+
distinguished_name = req_distinguished_name
3+
req_extensions = v3_req
4+
prompt = no
5+
6+
[req_distinguished_name]
7+
C = DE
8+
ST = Thuringia
9+
L = Weimar
10+
O = Tom Inc.
11+
OU = Team Bar
12+
CN = server-tom
13+
14+
[v3_req]
15+
keyUsage = keyEncipherment, dataEncipherment
16+
extendedKeyUsage = serverAuth
17+
subjectAltName = @alt_names
18+
[alt_names]
19+
DNS.1 = server-tom
20+
DNS.2 = localhost
96 Bytes
Binary file not shown.
45 Bytes
Binary file not shown.

server-tom/src/main/resources/tom.crt

+15-14
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICcTCCAdoCCQD0Wi++70uj5TANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJE
3-
RTESMBAGA1UECAwJVGh1cmluZ2lhMQ8wDQYDVQQHDAZXZWltYXIxFjAUBgNVBAoM
4-
DVRvbcOCwrRzIEluYy4xEzARBgNVBAMMCnNlcnZlci10b20xHDAaBgkqhkiG9w0B
5-
CQEWDXRvbUBlbWFpbC5jb20wHhcNMTcxMjEyMTAyNTM2WhcNMjcxMjEwMTAyNTM2
6-
WjB9MQswCQYDVQQGEwJERTESMBAGA1UECAwJVGh1cmluZ2lhMQ8wDQYDVQQHDAZX
7-
ZWltYXIxFjAUBgNVBAoMDVRvbcOCwrRzIEluYy4xEzARBgNVBAMMCnNlcnZlci10
8-
b20xHDAaBgkqhkiG9w0BCQEWDXRvbUBlbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEB
9-
BQADgY0AMIGJAoGBAMdyqaiG7hggBSUcJD2lSjR9V4KdNG5G2iH3nBM6hq8E9BwY
10-
9oJMg9rwru4AX9G27owdbhv2hbFxnUDotECLUuW+M6QYSMSAgNmRRgYxrXf4VvYm
11-
2/cEPgCKf/FizeiVQdRmjcEueOmxwb8hdoWybwFXtluXbclgHQH481mFmdF3AgMB
12-
AAEwDQYJKoZIhvcNAQEFBQADgYEAck+XjuEeKb0uq6N+d70lHCi+dsFBthWI9/ht
13-
seXrr+neqhOf/AvvVcwf0/jz5XtNGQotpg5k8c2M0UCYa8cepf6d08UBIPfZMTYm
14-
M8Yfexf9vJW3+Jj+2AL6uDlearhKb9wPNCS+BHOCuUAisBpL84PmIEE0VYyMBzcB
15-
89MVXKA=
2+
MIICnjCCAgegAwIBAgIJAK5ZWgGKmkZ4MA0GCSqGSIb3DQEBBQUAMG0xCzAJBgNV
3+
BAYTAkRFMRIwEAYDVQQIDAlUaHVyaW5naWExDzANBgNVBAcMBldlaW1hcjERMA8G
4+
A1UECgwIVG9tIEluYy4xETAPBgNVBAsMCFRlYW0gQmFyMRMwEQYDVQQDDApzZXJ2
5+
ZXItdG9tMB4XDTE3MTIxMjE5MDcxNloXDTI3MTIxMDE5MDcxNlowbTELMAkGA1UE
6+
BhMCREUxEjAQBgNVBAgMCVRodXJpbmdpYTEPMA0GA1UEBwwGV2VpbWFyMREwDwYD
7+
VQQKDAhUb20gSW5jLjERMA8GA1UECwwIVGVhbSBCYXIxEzARBgNVBAMMCnNlcnZl
8+
ci10b20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMdyqaiG7hggBSUcJD2l
9+
SjR9V4KdNG5G2iH3nBM6hq8E9BwY9oJMg9rwru4AX9G27owdbhv2hbFxnUDotECL
10+
UuW+M6QYSMSAgNmRRgYxrXf4VvYm2/cEPgCKf/FizeiVQdRmjcEueOmxwb8hdoWy
11+
bwFXtluXbclgHQH481mFmdF3AgMBAAGjRjBEMAsGA1UdDwQEAwIEMDATBgNVHSUE
12+
DDAKBggrBgEFBQcDATAgBgNVHREEGTAXggpzZXJ2ZXItdG9tgglsb2NhbGhvc3Qw
13+
DQYJKoZIhvcNAQEFBQADgYEAEviefsSN+QuvIw6SXMGJqM+Q9KD6TwEobQCGuTlA
14+
LYfjbhatT6JbArOWdXQVGNsuSYSjz0OMIBwj5ldGqqSCxj9XSlsHypQRJusYsNh6
15+
xGcsdwTqHqA7XwncfoWG+nIiZ1n0wSA5LgVNl+0My39/UKtXo4NNeUrKrwKM8si8
16+
lT8=
1617
-----END CERTIFICATE-----

server-tom/src/main/resources/tom.csr

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
-----BEGIN CERTIFICATE REQUEST-----
2-
MIIBvTCCASYCAQAwfTELMAkGA1UEBhMCREUxEjAQBgNVBAgMCVRodXJpbmdpYTEP
3-
MA0GA1UEBwwGV2VpbWFyMRYwFAYDVQQKDA1Ub23DgsK0cyBJbmMuMRMwEQYDVQQD
4-
DApzZXJ2ZXItdG9tMRwwGgYJKoZIhvcNAQkBFg10b21AZW1haWwuY29tMIGfMA0G
5-
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHcqmohu4YIAUlHCQ9pUo0fVeCnTRuRtoh
6-
95wTOoavBPQcGPaCTIPa8K7uAF/Rtu6MHW4b9oWxcZ1A6LRAi1LlvjOkGEjEgIDZ
7-
kUYGMa13+Fb2Jtv3BD4Ain/xYs3olUHUZo3BLnjpscG/IXaFsm8BV7Zbl23JYB0B
8-
+PNZhZnRdwIDAQABoAAwDQYJKoZIhvcNAQELBQADgYEAsYLgSkOuqFAt6szE4hFL
9-
YFdy/MXXf3yA8THkhYFdg3wbGUEiMNRr+FwrNxNvSD4Zoq0EvLpu3yUDY/D7QFoI
10-
P8dQeNR6vv59npjOtTZ7kROZarjq9ZRODdIw8IWMSD42J1zyQqlkOm45TTUJDism
11-
EOHwO594MzYzFlXWK1tIDYQ=
2+
MIICAjCCAWsCAQAwbTELMAkGA1UEBhMCREUxEjAQBgNVBAgMCVRodXJpbmdpYTEP
3+
MA0GA1UEBwwGV2VpbWFyMREwDwYDVQQKDAhUb20gSW5jLjERMA8GA1UECwwIVGVh
4+
bSBCYXIxEzARBgNVBAMMCnNlcnZlci10b20wgZ8wDQYJKoZIhvcNAQEBBQADgY0A
5+
MIGJAoGBAMdyqaiG7hggBSUcJD2lSjR9V4KdNG5G2iH3nBM6hq8E9BwY9oJMg9rw
6+
ru4AX9G27owdbhv2hbFxnUDotECLUuW+M6QYSMSAgNmRRgYxrXf4VvYm2/cEPgCK
7+
f/FizeiVQdRmjcEueOmxwb8hdoWybwFXtluXbclgHQH481mFmdF3AgMBAAGgVTBT
8+
BgkqhkiG9w0BCQ4xRjBEMAsGA1UdDwQEAwIEMDATBgNVHSUEDDAKBggrBgEFBQcD
9+
ATAgBgNVHREEGTAXggpzZXJ2ZXItdG9tgglsb2NhbGhvc3QwDQYJKoZIhvcNAQEL
10+
BQADgYEAcH5ASI8FNrOSdvAwuWeqt2BmAycBHSLGLkj46AuynoUl7ppxhSGAS5Id
11+
2hs7lf3heqBXoxFMfBxQeaxZFGBKkrZSUf4sROQzlY+IiplgiJIZ23xULXRmpzeZ
12+
X5dvv3JhBhj7TeBEn84K+ETQVs/k79ONfqNtwf1MvkaJf4AYKaE=
1213
-----END CERTIFICATE REQUEST-----

server-tom/src/test/java/de/jonashackt/RestClientCertTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public class RestClientCertTest {
2525
@Autowired
2626
private RestTemplate restTemplate;
2727

28-
@Ignore("currently not running, because the certificate isn´t issued for 'localhost'")
2928
@Test
3029
public void is_hello_resource_callable_with_client_cert() {
3130
String response = restTemplate.getForObject("https://localhost:" + port + "/hello", String.class);
96 Bytes
Binary file not shown.
45 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)