Så jag köper ett certifikat från DigiCert. Processen går så här:
- Skapa privat nyckel och CSR på webbservern.
- Skicka CSR till DigiCert.
- Få tillbaka ett signerat certifikat som samt deras rotcertifikat och mellancertifikat (CA-BUNDLE).
- Ladda upp certifikatet och CA-BUNDLE till webbservern via cPanel, Plesk, w \ e.
Min fråga är helt enkelt, vad är syftet med CA-BUNDLE?
Mitt certifikat får signerad av en DigiCert Intermediate CA som undertecknas av DigiCert ”root CA. Alla webbläsare litar i sig på DigiCert (och jag antar att det är mellanliggande CA?). Den faktiska RSA-krypteringen och AES-nyckelutbytet görs med hjälp av värdena i mitt certifikat, faktiskt använder webbservern inte något av certifikaten i CA-paketet för någonting.
Med detta sagt, vad är poängen med det? och varför måste jag ladda upp den? Det enda jag kan se är om klienten inte har ett mellanliggande certifikat installerat, kan det be min webbserver om det (och verifiera det mot DigiCert-roten i webbläsaren)?
Svar
Alla webbläsare litar i sig på DigiCert
Sann nog.
(och jag antar att det är mellanliggande CA?)
Klienter kan innehålla betrodda mellanliggande certifikat, men kan inte förväntas . Det är ditt jobb, servern, att tillhandahålla alla mellanliggande certifikat som behövs för att validera ditt certifikatkedja upp till roten ( RFC 5246 7.4.2 ):
certificate_list This is a sequence (chain) of certificates. The sender"s certificate MUST come first in the list. Each following certificate MUST directly certify the one preceding it. Because certificate validation requires that root keys be distributed independently, the self-signed certificate that specifies the root certificate authority MAY be omitted from the chain, under the assumption that the remote end must already possess it in order to validate it in any case.
Det enda jag kan se är om klienten inte har något av de mellanliggande certifikaten det kan fråga min webbserver om den (och verifiera den mot DigiCert-roten i webbläsaren)?
Rätt. Det är exakt anledningen.