#
# Surprisingly, it works quite well.
#
- # EAP-TTLS does not normally require a client certificate,
- # but you can make it require one by setting
- #
- # EAP-TLS-Require-Client-Cert = Yes
- #
- # in the control items for a request.
- #
ttls {
# Which tls-config section the TLS negotiation parameters
# are in - see EAP-TLS above for an explanation.
# The default value here is "yes".
#
# include_length = yes
+
+ #
+ # Unlike EAP-TLS, EAP-TTLS does not require a client
+ # certificate. However, you can require one by setting the
+ # following option. You can also override this option by
+ # setting
+ #
+ # EAP-TLS-Require-Client-Cert = Yes
+ #
+ # in the control items for a request.
+ #
+ # require_client_cert = yes
}
# EAP module. Inside of the TLS/PEAP tunnel, we
# recommend using EAP-MS-CHAPv2.
#
- # Unlike EAP-TLS, PEAP does not require a client certificate.
- # However, you can require one by setting
- #
- # EAP-TLS-Require-Client-Cert = Yes
- #
- # in the control items for a request.
- #
peap {
# Which tls-config section the TLS negotiation parameters
# are in - see EAP-TLS above for an explanation.
# can be sent to a specific virtual server:
#
# soh_virtual_server = "soh-server"
+
+ #
+ # Unlike EAP-TLS, PEAP does not require a client certificate.
+ # However, you can require one by setting the following
+ # option. You can also override this option by setting
+ #
+ # EAP-TLS-Require-Client-Cert = Yes
+ #
+ # in the control items for a request.
+ #
+ # require_client_cert = yes
}
#
*/
int soh;
char *soh_virtual_server;
+
+ /*
+ * Do we do require a client cert?
+ */
+ int req_client_cert;
} rlm_eap_peap_t;
{ "soh", PW_TYPE_BOOLEAN,
offsetof(rlm_eap_peap_t, soh), NULL, "no" },
+ { "require_client_cert", PW_TYPE_BOOLEAN,
+ offsetof(rlm_eap_peap_t, req_client_cert), NULL, "no" },
+
{ "soh_virtual_server", PW_TYPE_STRING_PTR,
offsetof(rlm_eap_peap_t, soh_virtual_server), NULL, NULL },
/*
* Check if we need a client certificate.
- *
- * FIXME: This should be more configurable.
+ */
+ client_cert = inst->req_client_cert;
+
+ /*
+ * EAP-TLS-Require-Client-Cert attribute will override
+ * the require_client_cert configuration option.
*/
vp = pairfind(handler->request->config_items,
PW_EAP_TLS_REQUIRE_CLIENT_CERT, 0);
* Virtual server for inner tunnel session.
*/
char *virtual_server;
+
+ /*
+ * Do we do require a client cert?
+ */
+ int req_client_cert;
} rlm_eap_ttls_t;
{ "include_length", PW_TYPE_BOOLEAN,
offsetof(rlm_eap_ttls_t, include_length), NULL, "yes" },
+ { "require_client_cert", PW_TYPE_BOOLEAN,
+ offsetof(rlm_eap_ttls_t, req_client_cert), NULL, "no" },
+
{ NULL, -1, 0, NULL, NULL } /* end the list */
};
/*
* Check if we need a client certificate.
- *
- * FIXME: This should be more configurable.
+ */
+ client_cert = inst->req_client_cert;
+
+ /*
+ * EAP-TLS-Require-Client-Cert attribute will override
+ * the require_client_cert configuration option.
*/
vp = pairfind(handler->request->config_items,
PW_EAP_TLS_REQUIRE_CLIENT_CERT, 0);