Autoridade de Certificação Intermediária VPN strongSwan

1

Eu testei o strongSwan VPN em um servidor Linux em um domínio do Windows Active Directory.

Eu consegui fazer com que uma PKI de camada única com autenticação EAP funcionasse, mas quando tento adicionar uma autoridade de certificação intermediária à configuração que se conecta à VPN, ela falha.

A VPN e ambas as CA's são do Debian 9 boxes.

Eu já tirei todo este domínio de teste e estou me preparando para começar do zero e queria saber se alguém tinha alguma opinião sobre o que eu poderia estar fazendo de errado.

Veja os comandos que executei para criar as CAs e o par de chaves do servidor.

Criando chave particular da CA raiz:

$ ipsec pki --gen --type rsa --size 4096 --outform pem > ca.key.pem
$ chmod 600 ca.key.pem

Criar certificado autoassinado:

$ ipsec pki --self --flag serverAuth --in ca.key.pem \ 
  --type rsa --digest sha256 \
  --dn "C=US, O=IT_Testing, CN=VPN Root CA" --ca > ca.crt.der

Criar chave privada intermediária da CA:

$ ipsec pki --gen --type rsa --size 4096 --outform pem > intca.key.pem

Gerar CSR intermediário da CA:

$ ipsec pki --pub --in intca.key.pem --type rsa >  intca.csr

Assinar o CSR intermediário da CA:

$ ipsec pki --issue --cacert ca.crt.der \ 
  --cakey ca.key.pem --digest sha256 \
  --dn "C=US, O=IT_Testing, CN=INT CA" \
  --san "intca.testdomain.com" --flag serverAuth \ 
  --flag ikeIntermediate --outform pem \
  < intca.csr > intca.crt.pem

Crie a chave privada do servidor VPN e o CSR:

$ ipsec pki --gen --type rsa --size 2048 --outform pem > vpn.testdomain.com.key.pem

$ ipsec pki --pub --in vpn.testdomian.com.key.pem --type rsa > vpn.testdomain.com.csr

Assinar o certificado do servidor VPN:

$ ipsec pki --issue --cacert intca.crt.pem \ 
  --cakey intca.key.pem --digest sha256 \
  --dn "C=US, O=IT_Testing, CN=vpn.testdomain.com" \
  --san "vpn.testdomain.com" --flag serverAuth --outform pem \
  < vpn.testdomain.com.csr > vpn.testdomain.com.crt.pem

Copio o certificado da CA raiz para /etc/ipsec.d/cacerts , o certificado da VPN para /etc/ipsec.d/certs e a chave do servidor VPN para /etc/ipsec.d/private .

Eu adiciono a linha leftcert=/etc/ipsec.d/certs/vpn.testdomain.com.crt.pem a ipsec.conf . Bem como ponto ipsec.secrets para a chave privada do servidor VPN.

O resto da configuração é o mesmo que o pki de camada única.

    
por 0B51D14N 14.06.2018 / 02:19

1 resposta

3

Ao emitir o certificado de CA intermediário, adicione --ca à linha de comando para adicionar o CA basicConstraint e realmente criar um certificado de CA.

E não adicione os sinalizadores serverAuth e ikeIntermediate a ele, apenas adicione-os ao certificado do servidor. ikeIntermediate não se refere a certificados de CA intermediários, mas a sistemas intermediários de IPsec, e provavelmente não é necessário adicioná-los mais (era apenas definido em um rascunho e acho que apenas uma versão muito antiga do macOS exigia isso.

    
por 14.06.2018 / 08:55