A public and private key are generated by a certificate authority.
Você pode optar por permitir que a autoridade de certificação gere a chave privada para você, mas não é necessário. Você pode gerar a chave privada em seu próprio sistema e enviar uma solicitação de assinatura de certificado à autoridade de certificação. A autoridade de certificação nunca precisa saber sua chave privada. Se você é realmente paranóico com relação à segurança, não deixe que eles gerem a chave privada para você.
This information can be saved within a "certificate" and then used by the client to authenticate. Why is it possible to have a certificate without a private key?
Para que um serviço autentique que sua chave é válida, eles precisam confiar na chave Raiz da autoridade de certificação que gerou o certificado ou precisam de uma cópia do certificado com a parte pública da chave. Um serviço que autentica você não precisa da sua chave privada.
How is a cert without a private key used?
Alguns serviços podem não querer confiar em todas as chaves emitidas por uma CA. Então eles podem querer salvar a versão pública da sua chave para que eles saibam que você é você. É claro que se eles confiarem na CA para colocar informações válidas no Assunto, então
Can a private key be requested at any time if a public key and CA is already known?
Nunca deverá ser possível recuperar a chave privada se tiver apenas a chave pública.
Se você permitir que sua CA gere sua chave privada para você, e eles salvem a chave privada em seu sistema e tenham uma segurança fraca, acho que a autoridade de certificação pode ser atacada e a chave privada recuperada. A parte pública da chave conterá informações sobre a autoridade de certificação. Isso parece muito improvável.