171 lines
5.5 KiB
XML
171 lines
5.5 KiB
XML
|
<?xml version="1.0"?>
|
||
|
<project name="smoke-test-plugins"
|
||
|
xmlns:ac="antlib:net.sf.antcontrib">
|
||
|
|
||
|
<target name="create-certificate-authority">
|
||
|
<ac:for list="private,certs,conf" param="dir">
|
||
|
<sequential>
|
||
|
<mkdir dir="${integ.scratch}/ca/@{dir}"/>
|
||
|
</sequential>
|
||
|
</ac:for>
|
||
|
<echo file="${integ.scratch}/ca/serial">01</echo>
|
||
|
<touch file="${integ.scratch}/ca/index.txt"/>
|
||
|
<echo file="${integ.scratch}/ca/conf/caconfig.cnf">[ ca ]
|
||
|
default_ca = CA_default
|
||
|
[ CA_default ]
|
||
|
copy_extensions = copy
|
||
|
dir = ${integ.scratch}/ca
|
||
|
serial = $dir/serial
|
||
|
database = $dir/index.txt
|
||
|
new_certs_dir = $dir/certs
|
||
|
certificate = $dir/certs/cacert.pem
|
||
|
private_key = $dir/private/cakey.pem
|
||
|
default_days = 712
|
||
|
default_md = sha256
|
||
|
preserve = no
|
||
|
email_in_dn = no
|
||
|
x509_extensions = v3_ca
|
||
|
name_opt = ca_default
|
||
|
cert_opt = ca_default
|
||
|
policy = policy_anything
|
||
|
[ policy_anything ]
|
||
|
countryName = optional
|
||
|
stateOrProvinceName = optional
|
||
|
localityName = optional
|
||
|
organizationName = optional
|
||
|
organizationalUnitName = optional
|
||
|
commonName = supplied
|
||
|
emailAddress = optional
|
||
|
[ req ]
|
||
|
default_bits = 2048 # Size of keys
|
||
|
default_keyfile = key.pem # name of generated keys
|
||
|
default_md = sha256 # message digest algorithm
|
||
|
string_mask = nombstr # permitted characters
|
||
|
distinguished_name = req_distinguished_name
|
||
|
req_extensions = v3_req
|
||
|
[ req_distinguished_name ]
|
||
|
# Variable name Prompt string
|
||
|
#------------------------- ----------------------------------
|
||
|
0.organizationName = Organization Name (company)
|
||
|
organizationalUnitName = Organizational Unit Name (department, division)
|
||
|
emailAddress = Email Address
|
||
|
emailAddress_max = 40
|
||
|
localityName = Locality Name (city, district)
|
||
|
stateOrProvinceName = State or Province Name (full name)
|
||
|
countryName = Country Name (2 letter code)
|
||
|
countryName_min = 2
|
||
|
countryName_max = 2
|
||
|
commonName = Common Name (hostname, IP, or your name)
|
||
|
commonName_max = 64
|
||
|
# Default values for the above, for consistency and less typing.
|
||
|
# Variable name Value
|
||
|
#------------------------ ------------------------------
|
||
|
0.organizationName_default = Elasticsearch Test Org
|
||
|
localityName_default = Amsterdam
|
||
|
stateOrProvinceName_default = Amsterdam
|
||
|
countryName_default = NL
|
||
|
emailAddress_default = cacerttest@YOUR.COMPANY.TLD
|
||
|
[ v3_ca ]
|
||
|
basicConstraints = CA:TRUE
|
||
|
subjectKeyIdentifier = hash
|
||
|
authorityKeyIdentifier = keyid:always,issuer:always
|
||
|
[ v3_req ]
|
||
|
basicConstraints = CA:FALSE
|
||
|
subjectKeyIdentifier = hash</echo>
|
||
|
<exec executable="openssl" failonerror="true">
|
||
|
<arg value="req"/>
|
||
|
<arg value="-new"/>
|
||
|
<arg value="-x509"/>
|
||
|
<arg value="-extensions"/>
|
||
|
<arg value="v3_ca"/>
|
||
|
<arg value="-keyout"/>
|
||
|
<arg value="${integ.scratch}/ca/private/cakey.pem"/>
|
||
|
<arg value="-out"/>
|
||
|
<arg value="${integ.scratch}/ca/certs/cacert.pem"/>
|
||
|
<arg value="-days"/>
|
||
|
<arg value="1460"/>
|
||
|
<arg value="-config"/>
|
||
|
<arg value="${integ.scratch}/ca/conf/caconfig.cnf"/>
|
||
|
<arg value="-subj"/>
|
||
|
<arg value="/OU=XPlugins QA"/>
|
||
|
<arg value="-passout"/>
|
||
|
<arg value="pass:capass"/>
|
||
|
</exec>
|
||
|
</target>
|
||
|
|
||
|
<target name="create-key">
|
||
|
<local name="parent.dir"/>
|
||
|
<dirname file="${keystore.path}" property="parent.dir" />
|
||
|
<mkdir dir="${parent.dir}"/>
|
||
|
<exec executable="keytool" failonerror="true"
|
||
|
inputstring="FirstName LastName
Unit
Organization
City
State
NL
yes

">
|
||
|
<arg value="-genkey"/>
|
||
|
<arg value="-alias"/>
|
||
|
<arg value="test-node"/>
|
||
|
<arg value="-keystore"/>
|
||
|
<arg value="${keystore.path}"/>
|
||
|
<arg value="-keyalg"/>
|
||
|
<arg value="RSA"/>
|
||
|
<arg value="-keysize"/>
|
||
|
<arg value="2048"/>
|
||
|
<arg value="-validity"/>
|
||
|
<arg value="712"/>
|
||
|
<arg value="-ext"/>
|
||
|
<arg value="san=dns:localhost,ip:127.0.0.1"/>
|
||
|
<arg value="-storepass"/>
|
||
|
<arg value="keypass"/>
|
||
|
</exec>
|
||
|
</target>
|
||
|
|
||
|
<target name="create-certificate" depends="create-key">
|
||
|
<mkdir dir="${integ.scratch}/cert"/>
|
||
|
<exec executable="keytool" failonerror="true"
|
||
|
inputstring="keypass
">
|
||
|
<arg value="-certreq"/>
|
||
|
<arg value="-alias"/>
|
||
|
<arg value="test-node"/>
|
||
|
<arg value="-keystore"/>
|
||
|
<arg value="${keystore.path}"/>
|
||
|
<arg value="-file"/>
|
||
|
<arg value="${integ.scratch}/cert/test-node.csr"/>
|
||
|
<arg value="-keyalg"/>
|
||
|
<arg value="RSA"/>
|
||
|
<arg value="-ext"/>
|
||
|
<arg value="san=dns:localhost,ip:127.0.0.1"/>
|
||
|
</exec>
|
||
|
</target>
|
||
|
|
||
|
<target name="sign-certificate" depends="create-certificate,create-certificate-authority">
|
||
|
<exec executable="openssl" failonerror="true"
|
||
|
inputstring="y
y
">
|
||
|
<arg value="ca"/>
|
||
|
<arg value="-in"/>
|
||
|
<arg value="${integ.scratch}/cert/test-node.csr"/>
|
||
|
<arg value="-notext"/>
|
||
|
<arg value="-out"/>
|
||
|
<arg value="${integ.scratch}/cert/test-node-signed.csr"/>
|
||
|
<arg value="-config"/>
|
||
|
<arg value="${integ.scratch}/ca/conf/caconfig.cnf"/>
|
||
|
<arg value="-extensions"/>
|
||
|
<arg value="v3_req"/>
|
||
|
<arg value="-passin"/>
|
||
|
<arg value="pass:capass"/>
|
||
|
</exec>
|
||
|
</target>
|
||
|
|
||
|
<target name="import-certificate" depends="sign-certificate">
|
||
|
<exec executable="keytool" failonerror="true"
|
||
|
inputstring="keypass
yes
">
|
||
|
<arg value="-importcert"/>
|
||
|
<arg value="-keystore"/>
|
||
|
<arg value="${keystore.path}"/>
|
||
|
<arg value="-file"/>
|
||
|
<arg value="${integ.scratch}/cert/test-node-signed.csr"/>
|
||
|
<arg value="-trustcacerts"/>
|
||
|
</exec>
|
||
|
</target>
|
||
|
|
||
|
<target name="generate-keystore" depends="import-certificate"/>
|
||
|
|
||
|
</project>
|