A melhor opção eu é usar um certificado de máquina e conceder permissão à conta IUSR para ler a chave privada do certificado. Este é um passo manual, mas muito fácil, que só precisa ser feito uma vez.
Existem outros requisitos em sua situação que impediriam a alteração das permissões do certificado?
Instruções para começar
Primeiro, você precisa de um certificado. Você pode gerar o seu próprio, mas dependendo de como você quer usá-lo e do outro lado que irá validá-lo, você pode precisar comprar um. Não vou cobrir como gerar um certificado. Se você nunca trabalhou com certificados e autoridades de certificação antes, recomendo aprender sobre eles primeiro.
Suponho que você esteja no Windows Server 2003, a menos que você comente o contrário.
1) Instale o certificado no armazenamento da máquina.
Vá para Iniciar | Executar e insira no MMC para obter um console do MMC em branco. Vá para Arquivo | Adicionar / Remover Snap-in. Clique no botão Adicionar para selecionar o snap-in. Escolha Certificados na lista e clique em Adicionar. Escolha a opção Conta do computador, depois, Concluir, Fechar e finalmente OK.
2) Importando o certificado para o Armazenamento de Máquinas.
Expanda a árvore e escolha a pasta Pessoal. Clique com o botão direito do mouse em Pessoal e escolha Todas as Tarefas, Importar. Siga o assistente para concluir o processo. O certificado deve estar agora no armazenamento da máquina.
3) Ajustando as permissões da chave privada.
No Windows 2008, isso é adicionado à GUI do Gerenciador de Certificados. No Windows 2003, você precisará fazer o download do Windows Server 2003 Resource Kit Tools . Use o seguinte formato de comando para definir permissões:
C:\Program Files\Windows Resource Kits\Tools\winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s "mycert" -a "USER_ACCOUNT"
Onde 'LOCAL_MACHINE \ My' é o armazenamento de Certificado Pessoal na máquina local, 'mycert' é o nome do seu certificado e USER_ACCOUNT é a conta que receberá permissões de leitura para a chave privada. Você pode tentar a conta IUSR, mas pode ser necessário usar o 'NETWORK SERVICE' dependendo do contexto exato em que seu aplicativo CGI está sendo executado. Você precisará reiniciar o IIS para que as alterações entrem em vigor. A documentação do WinHttpCertCfg cobre o que está sendo feito.
Agora você deve ter permissões para acessar a chave privada. Você ainda usará CertOpenSystemStore com o sinalizador MY.
Espero que ajude.
Editar 2:
Um lugar fácil para obter um certificado com uma autoridade reconhecida é o GoDaddy. Você pode obter um certificado SSL válido por 1 ano por US $ 30. Existem outros lugares que podem ser mais baratos se você procurar um pouco. Não é muito difícil de fazer. A maioria dos sites é muito amigável e facilita a compra de um certificado.
Como você está fazendo a autenticação mútua, você precisará de um certificado com uma autoridade válida, e não apenas uma auto-assinada, que pode ser criada porque o servidor do Gmail não teria como confirmá-la.