mirror of
https://github.com/trailofbits/algo.git
synced 2025-09-06 20:13:11 +02:00
I have made the following modifications to comply with the IKEv2 client certificate requirements: - Changed client certificate CN to {{ IP_subject_alt_name }}_{{ item }} from {{ item }} - Changed client certificate SAN to {{IP_subject_alt_name }} from {{ item }} - Added clientAuth to client certificate EKU I have made the following changes to address a mismatch in the windows deployment script and file names: - Changed the client certificate (.p12) filename in config/{{ IP_subject_alt_name }} to {{ IP_subject_alt_name}}_{{ item }}.p12 from {{ item }}.p12 to match the ps1 script Testing: I have tested the changes on Windows 10 client, Ubuntu 16.04.1 server (DigitalOcean) - the config described in Issue #234 I apologize for not being able to test on other configurations. I hope that someone else can verify my changes
This commit is contained in:
parent
4567d280f7
commit
a470671292
3 changed files with 11 additions and 11 deletions
|
@ -189,15 +189,15 @@
|
||||||
|
|
||||||
- name: Build the client's pair
|
- name: Build the client's pair
|
||||||
local_action: >
|
local_action: >
|
||||||
shell openssl req -utf8 -new -newkey {{ algo_params | default('ec:ecparams/prime256v1.pem') }} -config openssl.cnf -keyout private/{{ item }}.key -out reqs/{{ item }}.req -nodes -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ item }}" -batch &&
|
shell openssl req -utf8 -new -newkey {{ algo_params | default('ec:ecparams/prime256v1.pem') }} -config openssl.cnf -keyout private/{{ item }}.key -out reqs/{{ item }}.req -nodes -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ IP_subject_alt_name }}_{{ item }}" -batch &&
|
||||||
openssl ca -utf8 -in reqs/{{ item }}.req -out certs/{{ item }}.crt -config openssl.cnf -days 3650 -batch -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ item }}" &&
|
openssl ca -utf8 -in reqs/{{ item }}.req -out certs/{{ item }}.crt -config openssl.cnf -days 3650 -batch -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ IP_subject_alt_name }}_{{ item }}" &&
|
||||||
touch certs/{{ item }}_crt_generated
|
touch certs/{{ item }}_crt_generated
|
||||||
become: no
|
become: no
|
||||||
args:
|
args:
|
||||||
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
||||||
creates: certs/{{ item }}_crt_generated
|
creates: certs/{{ item }}_crt_generated
|
||||||
environment:
|
environment:
|
||||||
subjectAltName: "DNS:{{ item }}"
|
subjectAltName: "DNS:{{ IP_subject_alt_name }}"
|
||||||
with_items: "{{ users }}"
|
with_items: "{{ users }}"
|
||||||
|
|
||||||
- name: Build the client's p12
|
- name: Build the client's p12
|
||||||
|
@ -212,7 +212,7 @@
|
||||||
local_action:
|
local_action:
|
||||||
module: copy
|
module: copy
|
||||||
src: "configs/{{ IP_subject_alt_name }}/pki/private/{{ item }}.p12"
|
src: "configs/{{ IP_subject_alt_name }}/pki/private/{{ item }}.p12"
|
||||||
dest: "configs/{{ IP_subject_alt_name }}/{{ item }}.p12"
|
dest: "configs/{{ IP_subject_alt_name }}/{{IP_subject_alt_name }}_{{ item }}.p12"
|
||||||
mode: 0600
|
mode: 0600
|
||||||
become: no
|
become: no
|
||||||
with_items:
|
with_items:
|
||||||
|
|
|
@ -108,7 +108,7 @@ basicConstraints = CA:FALSE
|
||||||
subjectKeyIdentifier = hash
|
subjectKeyIdentifier = hash
|
||||||
authorityKeyIdentifier = keyid,issuer:always
|
authorityKeyIdentifier = keyid,issuer:always
|
||||||
|
|
||||||
extendedKeyUsage = serverAuth,1.3.6.1.5.5.7.3.17
|
extendedKeyUsage = serverAuth,clientAuth,1.3.6.1.5.5.7.3.17
|
||||||
keyUsage = digitalSignature, keyEncipherment
|
keyUsage = digitalSignature, keyEncipherment
|
||||||
subjectAltName = ${ENV::subjectAltName}
|
subjectAltName = ${ENV::subjectAltName}
|
||||||
|
|
||||||
|
|
12
users.yml
12
users.yml
|
@ -63,15 +63,15 @@
|
||||||
|
|
||||||
- name: Build the client's pair
|
- name: Build the client's pair
|
||||||
local_action: >
|
local_action: >
|
||||||
shell openssl req -utf8 -new -newkey {{ algo_params | default('ec:ecparams/prime256v1.pem') }} -config openssl.cnf -keyout private/{{ item }}.key -out reqs/{{ item }}.req -nodes -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ item }}" -batch &&
|
shell openssl req -utf8 -new -newkey {{ algo_params | default('ec:ecparams/prime256v1.pem') }} -config openssl.cnf -keyout private/{{ item }}.key -out reqs/{{ item }}.req -nodes -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ IP_subject_alt_name }}_{{ item }}" -batch &&
|
||||||
openssl ca -utf8 -in reqs/{{ item }}.req -out certs/{{ item }}.crt -config openssl.cnf -days 3650 -batch -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ item }}" &&
|
openssl ca -utf8 -in reqs/{{ item }}.req -out certs/{{ item }}.crt -config openssl.cnf -days 3650 -batch -passin pass:"{{ easyrsa_CA_password }}" -subj "/CN={{ IP_subject_alt_name }}_{{ item }}" &&
|
||||||
touch certs/{{ item }}_crt_generated
|
touch certs/{{ item }}_crt_generated
|
||||||
become: no
|
become: no
|
||||||
args:
|
args:
|
||||||
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
||||||
creates: certs/{{ item }}_crt_generated
|
creates: certs/{{ item }}_crt_generated
|
||||||
environment:
|
environment:
|
||||||
subjectAltName: "DNS:{{ item }}"
|
subjectAltName: "DNS:{{ IP_subject_alt_name }}"
|
||||||
with_items: "{{ users }}"
|
with_items: "{{ users }}"
|
||||||
|
|
||||||
- name: Build the client's p12
|
- name: Build the client's p12
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
local_action:
|
local_action:
|
||||||
module: copy
|
module: copy
|
||||||
src: "configs/{{ IP_subject_alt_name }}/pki/private/{{ item }}.p12"
|
src: "configs/{{ IP_subject_alt_name }}/pki/private/{{ item }}.p12"
|
||||||
dest: "configs/{{ IP_subject_alt_name }}/{{ item }}.p12"
|
dest: "configs/{{ IP_subject_alt_name }}/{{ IP_subject_alt_name }}_{{ item }}.p12"
|
||||||
mode: 0600
|
mode: 0600
|
||||||
become: no
|
become: no
|
||||||
with_items:
|
with_items:
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
|
|
||||||
- name: Get active users
|
- name: Get active users
|
||||||
local_action: >
|
local_action: >
|
||||||
shell grep ^V index.txt | grep -v "{{ IP_subject_alt_name }}" | awk '{print $5}' | sed 's/\/CN=//g'
|
shell grep ^V index.txt | grep -v "{{ IP_subject_alt_name }}" | awk '{print $5}' | sed 's/\/CN={{ IP_subject_alt_name }}_//g'
|
||||||
become: no
|
become: no
|
||||||
args:
|
args:
|
||||||
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
chdir: "configs/{{ IP_subject_alt_name }}/pki/"
|
||||||
creates: crl/{{ item }}_revoked
|
creates: crl/{{ item }}_revoked
|
||||||
environment:
|
environment:
|
||||||
subjectAltName: "DNS:{{ item }}"
|
subjectAltName: "DNS:{{ IP_subject_alt_name }}"
|
||||||
when: item not in users
|
when: item not in users
|
||||||
with_items: "{{ valid_certs.stdout_lines }}"
|
with_items: "{{ valid_certs.stdout_lines }}"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue