> Am 12.06.2017 um 21:35 schrieb Ruediger Pluem <rpl...@apache.org>:
> 
> 
> 
> On 06/12/2017 05:25 PM, Stefan Eissing wrote:
>> I talked to the people orignally writing our ssl OCSP code regarding
>> feedback we got from the Let's Encrypt server outage [1]. We agreed
>> that some valid points for improvement were raised and we need a 
>> discussion about what should be done about it, here.
>> 
>> I identified the following points so far:
>> 
>> 1. Hand out existing responses until expired
> 
> I guess the core mistake we do today is that we expire the entries in the 
> cache
> after SSLStaplingStandardCacheTimeout. But we should keep them in the cache 
> as long as
> they are valid (so either whats in the next update field of the response or 
> this update
> + SSLStaplingResponseMaxAge).
> Instead we should have a refresh parameter that I would set as percentage of 
> the
> expired time (so between this update and next update or as percentage of 
> already
> expired SSLStaplingResponseMaxAge). Once this refresh time is passed OCSP 
> responses
> should get refreshed by a background job (possibly implemented by 
> mod_watchdog).

+1

>> 2. Persist responses (is this just a config/default issue?)
> 
> This could become tricky given the various so cache implementations we have. 
> I could
> only think of persisting the whole cache when Apache is shutdown.

Hmm, if there is a single watchdog job fetching/updating the OCSP responses, 
we'd no
long have requests triggered by new connections in child processes, right? That
would make a file based lookup quite simple, I'd assume?

>> 3. Start update responses at server start/regular intervals
> 
> What I want to avoid is that the server "hangs" at start because of a 
> "hanging" OCSP server.
> I admit that this can happen already today on the very first SSL request with 
> stapling turned
> on, but IMHO this is a bad behavior. So either just do the stuff on a regular 
> basis in the background
> and do not staple if there is no valid OCSP response yet (I know Hanno won't 
> like that :-))
> Or have an initial (valid) OCSP response being loaded from a file during 
> startup. It would be up to
> the admin to fill this file with a valid OCSP response before it starts httpd.

The goal would be anyway, given watchdog refreshes at appropriate times, to 
always have
persisted and valid ocsp responses. Only when a new cert gets deployed, there 
would be the
chance of "missing" ocsp responses until the watchdog job can retrieve it.

If we serve the connection then without, or fail after a small grace timeout, 
will probably need to be decided by the admin.

>> 4. Use something better than HTTP/1.0 requests
> 
> What issues do we have with the HTTP/1.0 requests?

None i know of in ocsp. So, disregard this please. I take it back.

>> I think 1) should be not too complicated code changes without
>> any big restructuring. I saw Ruediger already doing some changes.
>> 
>> The reason for 2) is not clear to me. Is this just a configuration
>> issue to have a persistent cache or is our giving up privileges
>> limiting here?
>> 
>> As to 3, starting a task at server start or after a certain interval,
>> do we have some infrastructure for this? Do we need something new?
>> 
>> On 4, it seems, we lack a good http(s) client. The code we use
>> for proxying is not easily reused for new connections, or? I see
>> more need for such a thing in the near future.
>> 
>> Feedback appreciated.
> 
> Regards
> 
> Rüdiger

Reply via email to