Dear Apache Software Foundation: FIX THE MSIE SSL KEEPALIVE SETTINGS!

Dear Apache Software Foundation, and the developers of the Apache Web server:

I would like to thank you for developing a great product. I rely on it daily to host my own sites, and a large number of people on the Internet seem to share my love of this software.

However, it appears that you seem to want to maintain a simple flaw in your logic that continues to make me crazy. I am a Web performance analyst, and at least once a week I sigh, and shake my head whenever I stoop to use Microsoft Internet Explorer (MSIE) to visit secure sites.

I seems that in your SSL configurations, you continue to assume that ALL versions of MSIE can’t handle persistent connections under SSL/TLS.

Is this true? Is a bug initially caught in MSIE 5.x (5.0??) still valid for MSIE 6.0/7.0?

The short answer is: I don’t know.

It seems that no one in the Apache server team has bothered to go back and see if the current versions of MSIE — we are trying to track down the last three people use MSIE 5.x and help them — still share this problem.

In the meantime, can you change your SSL exclusion RegEx to something more, relevant for 2007?

Current RegEx:

SetEnvIf User-Agent ".*MSIE.*" nokeepalive
	ssl-unclean-shutdown
	downgrade-1.0 force-response-1.0

Relvant, updated REGEX:

SetEnvIf User-Agent ".*MSIE [1-5].*"
	nokeepalive ssl-unclean-shutdown
	downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [6-9].*"
	ssl-unclean-shutdown

Please? PLEASE? It’s so easy…and would solve so many performance problems…

Please?

Thank you.

Tags: , , , , , ,

About these ads

21 thoughts on “Dear Apache Software Foundation: FIX THE MSIE SSL KEEPALIVE SETTINGS!

  1. ian holsman

    hey steve,
    you should file a bug about it.

    personally I can’t verify it as I don’t run windows. but in general the httpd project is more conservative than performance focused.

    Reply
  2. ian holsman

    hey steve,you should file a bug about it.personally I can’t verify it as I don’t run windows. but in general the httpd project is more conservative than performance focused.

    Reply
  3. Pingback: Giant Geek Blog » Blog Archive » MSIE’s flawed SSL implementation

  4. bwg

    This change fixed a problem we had after a patch update to apache resulted in IE clients not being able to access one of our enterprise Java apps over SSL through an ISA firewall.
    The error seen in the ISA logs was:
    Error Code: 500 Internal Server error. The context has expired and can no longer be used. (-2146893033)
    By changing ssl.conf to only specify ssl-unclean-shutdown for MSIE 6+, the IE clients were able to use the application without errors.

    Reply
  5. bwg

    This change fixed a problem we had after a patch update to apache resulted in IE clients not being able to access one of our enterprise Java apps over SSL through an ISA firewall.The error seen in the ISA logs was:Error Code: 500 Internal Server error. The context has expired and can no longer be used. (-2146893033)By changing ssl.conf to only specify ssl-unclean-shutdown for MSIE 6+, the IE clients were able to use the application without errors.

    Reply
  6. Scooter Hanson

    I'm glad to see you exclude nokeepalive. With a setup including an OCSP responder, that nokeepalive flag kills us with multiple pki cert validation requests per page load.

    Reply
  7. Pingback: Less Requirement » Blog Archive » Apach SSL is slow, or IE SSL is slow?

  8. Scooter Hanson

    I'm glad to see you exclude nokeepalive. With a setup including an OCSP responder, that nokeepalive flag kills us with multiple pki cert validation requests per page load.

    Reply
  9. PatrickN

    I totally agree with you that the developers of the Apache Web server creates a great product despite of the fact that sometimes it makes some small mistakes like you mentioned. I hope that it would never happen again in the future. Well I have to find out if they have fixed this problem. Btw thanks for the interesting post!Sincerely, Craig Barteson from software application development

    Reply
    1. Ken

      It looks like the regex for your fix will break for IE10.0

      221 BrowserMatch “.*MSIE [1-5].*”
      222 nokeepalive ssl-unclean-shutdown
      223 downgrade-1.0 force-response-1.0

      Reply
  10. Joel

    I’m a bit surprised that the Apache software foundation would make these changes on an article that the author admits he doesn’t know if the problem exists.

    Reply
  11. Pingback: HTTPS and Keep-Alive Connections - MSDN Blogs

  12. Pingback: Relying on Web Performance Monitoring to Discover Release Problems | Catchpoint Blog on Web Performance Monitoring

  13. Pingback: IEからApacheへSSL通信をすると重くなる処理を改善する | Classmethod.dev('beta')

  14. Kenneth

    Try this on Rejex validator (http://rejex.heroku.com) and it should pass for particular version of IE, especially verion 6:

    #Beware of backward slash plus double dots
    BrowserMatch “.*MSIE [2-5]\..*” \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0

    #IE6 or above should work fine in responding HTTP/1.1 directly
    BrowserMatch “.*MSIE [6-9]\..*” ssl-unclean-shutdown

    Reply
  15. ppostma1

    no, 6 has the downgrade issue also
    BrowserMatch “MSIE [4-6]” nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
    BrowserMatch “MSIE [7-9]” ssl-unclean-shutdown

    That stops attempting the work around in version 10… but is that asking too much?

    Reply
    1. Bubez

      BrowserMatch “.*MSIE ([6-9]|[0-9]{2}).*” ssl-unclean-shutdown

      Should fix the IE10.x (and more) issue. It should be valid until IE99 …

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s