Das Intersult SSL Maven Plugin bietet die Möglichkeit HTTPSContent unavailable! (broken link)https://www.dynarocks.com/wiki/images/out.png Zertifikate in die aktuelle Virtuelle Maschine zu importieren. Das Intersult SSL Maven Plugin ist aus dem Intersult Maven Repository zu beziehen.
Anwendung#
In Build-Prozessen können Ressourcen aus HTTPS-gesicherten Quellen bezogen werden. Betroffen sein können:- Maven-Artifakte
- WSDL-Dateien für Web-Services
- Andere Quellen, auf die mit URLs verwiesen wird
Der Import eines Zertifikats unterstützt folgende Parameter:
Name | Default | Bedeutung |
---|---|---|
keyStoreKey | changeit | Passwort für den Java Keystore, falls dieser geändert wurde. |
proxyHost | - | Zu verwendender HTTP-Proxy-Hostname oder IP-Adresse. |
proxyPort | 3128 | Zu verwendender HTTP-Proxy-Port. |
Die Zertifikate unterstützen URL und Alias. Die URL kann eine File-URL oder jede andere URL darstellen. Die Angabe des Alias ist optional, falls nicht angegeben wird der Dateiname verwendet (ohne Pfad, Domain etc.)
... <certificates> <certificate> <alias>ALIAS</alias> <url>URL-TO-CERTIFICATE</url> </certificate> ... </certificates> ...
Ablauf#
- Zunächst wird der Alias im Keystore gesucht.
- Wird er gefunden, wird mit dem nächsten Zertifikat fortgefahren.
- Falls der Alias nicht gefunden wurde, wird die URL geöffnet.
- Falls sich das Zertifikat bereits im Keystore befindet, wird der Alias geändert.
- Andernfalls wird das Zertifikat im Keystore importiert.
Hinweis#
Die URL wird nur geöffnet, falls sich das Zertifikat nicht im Keystore befindet. Falls das Plugin standardmäßig ausgeführt wird, wird also kein Netzwerk-Traffic erzeugt.Beispiele#
Remote Certificates (unsicher)#
Das Plugin kann in der pom.xml folgendermaßen konfiguriert werden:... <plugin> <groupId>com.intersult</groupId> <artifactId>ssl-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> <executions> <execution> <id>import-cert</id> <goals> <goal>import-cert</goal> </goals> <configuration> <certificates> <certificate> <url>http://www.startssl.com/certs/ca.crt</url> </certificate> <certificate> <url>http://www.startssl.com/certs/sub.class1.server.ca.crt</url> </certificate> </certificates> </configuration> </execution> </executions> </plugin> ...
Erklärung: Zunächst
Lokale Certificates#
Sicherer ist es, die Zertifikate lokal abzulegen, um eine Manipulation zu vermeiden. Darin liegt letzten Endes der Sinn von SSL:<configuration> <certificates> <certificate> <url>file:/${basedir}/src/main/resources/cert/ca.pem</url> </certificate> <certificate> <url>file:/${basedir}/src/main/resources/cert/sub.class1.server.ca.pem</url> </certificate> </certificates> </configuration>
Proxy#
Soll ein Proxy verwendet werden, können folgende Einträge in die Configuration gemacht werden:... <configuration> <proxyHost>someproxy</proxyHost> <proxyPort>3128</proxyPort> ... </configuration>