Changes with Apache 2.4.13
+ *) mod_ssl: Fix renegotiation failures redirected to an ErrorDocument.
+ PR 57334. [Yann Ylavic].
+
*) mod_proxy_ajp: Forward SSL protocol name (SSLv3, TLSv1.1 etc.) as a
request attribute to the backend. Recent Tomcat versions will extract
it and provide it as a servlet request attribute named
if (SSL_get_state(ssl) != SSL_ST_OK) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02030)
- "TLS upgrade handshake failed: not accepted by client!?");
+ "TLS upgrade handshake failed");
+ ssl_log_ssl_error(SSLLOG_MARK, APLOG_ERR, r->server);
return APR_ECONNABORTED;
}
int depth, verify_old, verify, n;
if (ssl) {
+ /*
+ * We should have handshaken here (on handshakeserver),
+ * otherwise we are being redirected (ErrorDocument) from
+ * a renegotiation failure below. The access is still
+ * forbidden in the latter case, let ap_die() handle
+ * this recursive (same) error.
+ */
+ if (SSL_get_state(ssl) != SSL_ST_OK) {
+ return HTTP_FORBIDDEN;
+ }
ctx = SSL_get_SSL_CTX(ssl);
}
if (SSL_get_state(ssl) != SSL_ST_OK) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02261)
- "Re-negotiation handshake failed: "
- "Not accepted by client!?");
+ "Re-negotiation handshake failed");
+ ssl_log_ssl_error(SSLLOG_MARK, APLOG_ERR, r->server);
r->connection->keepalive = AP_CONN_CLOSE;
return HTTP_FORBIDDEN;