summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2012-12-11 02:19:27 -0800
committerelijah <elijah@riseup.net>2012-12-11 02:19:27 -0800
commit4a63e8c258025f91f4f3e37385fe2dfc0fc579ad (patch)
tree6c9ca85a9c0cd7377b24d0aff3fd8de717b405a8
parent7474fd4e2076d229b5409632f3f7bc471ce7831c (diff)
add keyEncipherment to server certs
-rw-r--r--lib/leap_cli/commands/ca.rb15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/leap_cli/commands/ca.rb b/lib/leap_cli/commands/ca.rb
index d6fd975..c87dcea 100644
--- a/lib/leap_cli/commands/ca.rb
+++ b/lib/leap_cli/commands/ca.rb
@@ -267,8 +267,15 @@ module LeapCli; module Commands
end
#
- # for keyusage, openvpn server certs can have keyEncipherment or keyAgreement. I am not sure which is preferable.
- # going with keyAgreement for now.
+ # For keyusage, openvpn server certs can have keyEncipherment or keyAgreement.
+ # Web browsers seem to break without keyEncipherment.
+ #
+ # * digitalSignature ==> for (EC)DHE cipher suites
+ # * keyEncipherment ==> for plain RSA cipher suites
+ # * keyAgreement ==> for used with DH, not RSA.
+ #
+ # I am including all three because that seems to work in all cases. I am not sure if this
+ # is the right thing to do.
#
# digest options: SHA512, SHA256, SHA1
#
@@ -277,10 +284,10 @@ module LeapCli; module Commands
"digest" => manager.provider.ca.server_certificates.digest,
"extensions" => {
"keyUsage" => {
- "usage" => ["digitalSignature", "keyAgreement"]
+ "usage" => ["digitalSignature", "keyEncipherment", "keyAgreement"]
},
"extendedKeyUsage" => {
- "usage" => ["serverAuth"]
+ "usage" => ["serverAuth", "clientAuth"]
},
"subjectAltName" => {
"ips" => [node.ip_address],