|
|
008793 |
--- a/modules/ssl/ssl_engine_kernel.c 2015/02/27 06:05:11 1662639
|
|
|
008793 |
+++ b/modules/ssl/ssl_engine_kernel.c 2015/02/27 06:18:31 1662640
|
|
|
008793 |
@@ -80,7 +80,8 @@
|
|
|
008793 |
|
|
|
008793 |
if (SSL_get_state(ssl) != SSL_ST_OK) {
|
|
|
008793 |
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02030)
|
|
|
008793 |
- "TLS upgrade handshake failed: not accepted by client!?");
|
|
|
008793 |
+ "TLS upgrade handshake failed");
|
|
|
008793 |
+ ssl_log_ssl_error(SSLLOG_MARK, APLOG_ERR, r->server);
|
|
|
008793 |
|
|
|
008793 |
return APR_ECONNABORTED;
|
|
|
008793 |
}
|
|
|
008793 |
@@ -314,6 +315,16 @@
|
|
|
008793 |
int depth, verify_old, verify, n;
|
|
|
008793 |
|
|
|
008793 |
if (ssl) {
|
|
|
008793 |
+ /*
|
|
|
008793 |
+ * We should have handshaken here (on handshakeserver),
|
|
|
008793 |
+ * otherwise we are being redirected (ErrorDocument) from
|
|
|
008793 |
+ * a renegotiation failure below. The access is still
|
|
|
008793 |
+ * forbidden in the latter case, let ap_die() handle
|
|
|
008793 |
+ * this recursive (same) error.
|
|
|
008793 |
+ */
|
|
|
008793 |
+ if (SSL_get_state(ssl) != SSL_ST_OK) {
|
|
|
008793 |
+ return HTTP_FORBIDDEN;
|
|
|
008793 |
+ }
|
|
|
008793 |
ctx = SSL_get_SSL_CTX(ssl);
|
|
|
008793 |
}
|
|
|
008793 |
|
|
|
008793 |
@@ -828,8 +839,8 @@
|
|
|
008793 |
|
|
|
008793 |
if (SSL_get_state(ssl) != SSL_ST_OK) {
|
|
|
008793 |
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02261)
|
|
|
008793 |
- "Re-negotiation handshake failed: "
|
|
|
008793 |
- "Not accepted by client!?");
|
|
|
008793 |
+ "Re-negotiation handshake failed");
|
|
|
008793 |
+ ssl_log_ssl_error(SSLLOG_MARK, APLOG_ERR, r->server);
|
|
|
008793 |
|
|
|
008793 |
r->connection->keepalive = AP_CONN_CLOSE;
|
|
|
008793 |
return HTTP_FORBIDDEN;
|