Project

General

Profile

Requirements for certificates used with Windows 7 » History » Version 8

Tobias Brunner, 07.12.2012 11:01

1 1 Martin Willi
h1. Requirements for certificates used with Windows 7
2 1 Martin Willi
3 7 Tobias Brunner
The Windows 7 Beta release was liberal in accepting certificates, but already the Release Candidate added several new requirements for the VPN gateway certificate.
4 1 Martin Willi
5 1 Martin Willi
h2. Required fields
6 1 Martin Willi
7 3 Andreas Steffen
Your gateway certificate must have:
8 5 Andreas Steffen
9 7 Tobias Brunner
* An *Extended Key Usage* flag explicitly allowing the certificate to be used for authentication purposes. The *serverAuth* EKU having the OID _1.3.6.1.5.5.7.3.1_ (often called _TLS Web server authentication_) will do that. If you are using OpenSSL to generate your certificates then include the option
10 1 Martin Willi
  <pre>
11 1 Martin Willi
extendedKeyUsage = serverAuth
12 7 Tobias Brunner
</pre>
13 1 Martin Willi
14 7 Tobias Brunner
  For the [[IpsecPkiIssue|ipsec pki]] tool add the following argument
15 7 Tobias Brunner
  <pre>
16 7 Tobias Brunner
--flag serverAuth
17 7 Tobias Brunner
</pre>
18 1 Martin Willi
19 7 Tobias Brunner
  In addition to _serverAuth_ the "IP Security IKE Intermediate" EKU with OID _1.3.6.1.5.5.8.2.2_ does not hurt either and will allow you to use the certificate with older [[IOS_(Apple)|Mac OS X releases]] too.
20 7 Tobias Brunner
  So, this will work too:
21 7 Tobias Brunner
22 7 Tobias Brunner
  <pre>
23 7 Tobias Brunner
extendedKeyUsage = serverAuth, 1.3.6.1.5.5.8.2.2
24 7 Tobias Brunner
</pre><pre>
25 7 Tobias Brunner
--flag serverAuth --flag ikeIntermediate
26 7 Tobias Brunner
</pre>
27 7 Tobias Brunner
28 7 Tobias Brunner
29 4 Andreas Steffen
* The hostname of the VPN gateway entered in the clients connection properties *MUST* be contained either in the *subjectDistinguishedName* of the server certificate
30 1 Martin Willi
31 4 Andreas Steffen
  <pre>
32 4 Andreas Steffen
C=CH, O=strongSwan Project, CN=vpn.strongswan.org
33 4 Andreas Steffen
</pre>
34 1 Martin Willi
35 8 Tobias Brunner
  and/or in a *subjectAltName* extension that can be added with the OpenSSL option
36 1 Martin Willi
37 1 Martin Willi
  <pre>
38 1 Martin Willi
subjectAltName = DNS:vpn.strongswan.org
39 1 Martin Willi
</pre>
40 1 Martin Willi
41 7 Tobias Brunner
  or the [[IpsecPkiIssue|ipsec pki issue]] argument
42 7 Tobias Brunner
43 7 Tobias Brunner
  <pre>
44 7 Tobias Brunner
--san vpn.strongswan.org
45 7 Tobias Brunner
</pre>
46 7 Tobias Brunner
47 8 Tobias Brunner
  *For optimal interoperability* with other client implementations it is recommended to include the hostname as *subjectAltName*, because matching only parts of the distinguished name is actually not compliant with "RFC 4945":http://tools.ietf.org/html/rfc4945. Having the hostname encoded as *subjectAltName* is essential when using [[AndroidVpnClient|our Android app]] or working with [[IOS_(Apple)|Mac OS X clients]].
48 7 Tobias Brunner
49 1 Martin Willi
h2. Disabling extended certificate checks
50 1 Martin Willi
51 1 Martin Willi
Alternatively, you may disable these extended certificate checks on the client. 
52 1 Martin Willi
53 1 Martin Willi
> *This is potentially dangerous, as any certificate holder assured by your CA may act as the VPN gateway.*
54 1 Martin Willi
55 4 Andreas Steffen
To disable the extended checks, add a _DWORD_ called *DisableIKENameEkuCheck* to
56 1 Martin Willi
57 4 Andreas Steffen
<pre>
58 4 Andreas Steffen
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\Parameters\
59 4 Andreas Steffen
</pre>
60 1 Martin Willi
61 1 Martin Willi
in the client's registry.
62 4 Andreas Steffen
63 4 Andreas Steffen
64 4 Andreas Steffen
h2. Further information
65 4 Andreas Steffen
66 4 Andreas Steffen
For more details about the requirements and other ways to disable the certificate checks, have a look to "this knowledge base article":http://support.microsoft.com/kb/926182.
67 7 Tobias Brunner
68 7 Tobias Brunner
"This blog entry":http://www.carbonwind.net/blog/post/VPN-Reconnect-in-Windows-7-RC-redux.aspx also provides detailed information about the Windows 7 certificate requirements.