Vor einiger Zeit habe ich den Blogbeitrag SSLVPN auf SonicWall mit Zertifikat aus Windows CA absichern geschrieben. Das funktioniert wie dort beschrieben ohne Probleme, erlaubt aber nur einen (1) FQDN, der von dem Zertifikat abgesichert wird. Es gibt keine Möglichkeit mit der SonicWall einen CSR mit mehreren SANs (Subject Alternative Names) zu erzeugen und es gibt auch keine Möglichkeit dem mit der SonicWall erzeugten CSR nachträglich zusätzliche SANs hinzuzufügen.
Mit dem im folgenden beschriebenen Schritten ist es möglich mit einer Windows Enterprise-CA ein Multidomain-Zertifikat für „vpn.firma-a.de“ und „vpn.firma-b.de“ zu erzeugen und dieses in einer SonicWall für SSLVPN zu verwenden:
- Zuerst die Datei vpn.inf (Beispielname) mit folgendem Inhalt erzeugen:
[Version] Signature="$Windows NT$" [NewRequest] Subject = "CN=vpn.firma-a.de, O=Firma A GmbH, OU=IT, L=Stadt, S=Bundesland, C=DE" KeyLength = 2048 Exportable = TRUE MachineKeySet = TRUE KeySpec = 1 KeyUsage = 0xa0 ProviderName = "Microsoft RSA SChannel Cryptographic Provider" HashAlgorithm = SHA256 RequestType = PKCS10 [Extensions] 2.5.29.17 = "{text}" _continue_ = "dns=vpn.firma-a.de&" _continue_ = "dns=vpn.firma-b.de" - CSR (.req) erzeugen:
certreq -new vpn.inf vpn.req
- Zertifikat (.cer) anfordern. Dabei wird das selbst erzeugte CertificateTemplate „SonicWallSSLVPN“ verwendet, dessen Erstellung ich im ersten Blogbeitrag beschrieben habe.
certreq -submit -attrib "CertificateTemplate:SonicWallSSLVPN" vpn.req vpn.cer
- Das Zertifikat zuerst lokal importieren. Der Befehl importiert es für „Local Computer“, daher ist es (falls man den Import kontrollieren will) in certlm.msc sichtbar, nicht in certmgr.msc
certreq -accept vpn.cer
- Anschließend gleich wieder (in einer administrativen PowerShell) als .pfx exportieren
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -like "*vpn.firma-a.de*"} Export-PfxCertificate -Cert $cert -FilePath vpn.pfx -Password (ConvertTo-SecureString "MeinPasswort" -AsPlainText -Force) - Diese .pfx Datei kann in der SonicWall unter Device -> Settings -> Certificates mit „Import“ importiert werden und wird anschließend mit „Validated = Yes“ angezeigt.
- Abschließend noch das Zertifikat unter Network -> SSL VPN -> Server Settings bei „Certificate Selection“ auswählen
- Die SonicWall zeigt in der Zertifikatsliste (wenn man das importierte Zertifikat aufklappt) nur den CN (also nur den ersten FQDN) an. Wenn man aber im Browser https://vpn.firma-a.de:4433 (4433 ist der Standardport) aufruft und das Zertifikat dort kontrolliert, sieht man, dass alle SANs sauber im Zertifikat enthalten sind.