Add SSL keystore and truststore
This commit is contained in:
parent
6811cde9db
commit
45ef5a467c
5 changed files with 41 additions and 8 deletions
|
|
@ -45,7 +45,10 @@ es_jvm_custom_parameters: ''
|
||||||
# SSL/TLS parameters
|
# SSL/TLS parameters
|
||||||
es_enable_http_ssl: false
|
es_enable_http_ssl: false
|
||||||
es_enable_transport_ssl: false
|
es_enable_transport_ssl: false
|
||||||
|
es_ssl_keystore: ""
|
||||||
|
es_ssl_truststore: ""
|
||||||
es_ssl_key: ""
|
es_ssl_key: ""
|
||||||
es_ssl_certificate: ""
|
es_ssl_certificate: ""
|
||||||
es_ssl_certificate_authority: ""
|
es_ssl_certificate_authority: ""
|
||||||
es_ssl_certificate_path: "/etc/elasticsearch/certs"
|
es_ssl_certificate_path: "/etc/elasticsearch/certs"
|
||||||
|
es_ssl_verification_mode: "certificate"
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,13 @@
|
||||||
- es_api_basic_auth_username is not defined
|
- es_api_basic_auth_username is not defined
|
||||||
- es_api_basic_auth_password is not defined
|
- es_api_basic_auth_password is not defined
|
||||||
|
|
||||||
|
- name: fail when ssl enabled without defining a key and certificate
|
||||||
|
fail: msg="Enabling SSL/TLS (es_enable_http_ssl or es_enable_transport_ssl) requires es_ssl_keystore and es_ssl_truststore or es_ssl_key and es_ssl_certificate to be provided"
|
||||||
|
when:
|
||||||
|
- es_enable_http_ssl or es_enable_transport_ssl
|
||||||
|
- (es_ssl_key == "" or es_ssl_certificate == "")
|
||||||
|
- (es_ssl_keystore == "" or es_ssl_truststore == "")
|
||||||
|
|
||||||
- name: set fact file_reserved_users
|
- name: set fact file_reserved_users
|
||||||
set_fact: file_reserved_users={{ es_users.file.keys() | list | intersect (reserved_xpack_users) }}
|
set_fact: file_reserved_users={{ es_users.file.keys() | list | intersect (reserved_xpack_users) }}
|
||||||
when: es_users is defined and es_users.file is defined and (es_users.file.keys() | list | length > 0) and (es_users.file.keys() | list | intersect (reserved_xpack_users) | length > 0)
|
when: es_users is defined and es_users.file is defined and (es_users.file.keys() | list | length > 0) and (es_users.file.keys() | list | intersect (reserved_xpack_users) | length > 0)
|
||||||
|
|
|
||||||
|
|
@ -4,20 +4,28 @@
|
||||||
dest: "{{ es_ssl_certificate_path }}"
|
dest: "{{ es_ssl_certificate_path }}"
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Upload HTTP SSL/TLS certificates
|
- name: Upload SSL/TLS keystore and truststore
|
||||||
copy:
|
copy:
|
||||||
src: "{{ item }}"
|
src: "{{ item }}"
|
||||||
dest: "{{ es_ssl_certificate_path }}/{{ item | basename }}"
|
dest: "{{ es_ssl_certificate_path }}/{{ item | basename }}"
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ es_ssl_key }}"
|
- "{{ es_ssl_key }}"
|
||||||
- "{{ es_ssl_certificate }}"
|
- "{{ es_ssl_certificate }}"
|
||||||
when: es_enable_http_ssl|bool or es_enable_transport_ssl|bool
|
when: es_ssl_keystore and es_ssl_truststore
|
||||||
|
register: copy_keystores
|
||||||
|
|
||||||
- local_action: stat path="{{ role_path }}/files/{{ es_ssl_certificate_authority }}"
|
- name: Upload SSL/TLS key and certificate
|
||||||
register: es_cafile
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "{{ es_ssl_certificate_path }}/{{ item | basename }}"
|
||||||
|
with_items:
|
||||||
|
- "{{ es_ssl_key }}"
|
||||||
|
- "{{ es_ssl_certificate }}"
|
||||||
|
when: es_ssl_key and es_ssl_certificate
|
||||||
|
register: copy_certificates
|
||||||
|
|
||||||
- name: Upload SSL Certificate Authority
|
- name: Upload SSL Certificate Authority
|
||||||
copy:
|
copy:
|
||||||
src: "{{ es_ssl_certificate_authority }}"
|
src: "{{ es_ssl_certificate_authority }}"
|
||||||
dest: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate_authority | basename }}"
|
dest: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate_authority | basename }}"
|
||||||
when: es_cafile.stat.exists|bool and es_cafile.stat.isreg|bool
|
when: es_ssl_certificate_authority
|
||||||
|
|
|
||||||
|
|
@ -53,8 +53,9 @@
|
||||||
tags:
|
tags:
|
||||||
- xpack
|
- xpack
|
||||||
|
|
||||||
- name: include ssl.yml
|
- name: include elasticsearch-ssl.yml
|
||||||
include: elasticsearch-ssl.yml
|
include: elasticsearch-ssl.yml
|
||||||
|
when: es_enable_http_ssl or es_enable_transport_ssl
|
||||||
|
|
||||||
- name: flush handlers
|
- name: flush handlers
|
||||||
meta: flush_handlers
|
meta: flush_handlers
|
||||||
|
|
|
||||||
|
|
@ -58,19 +58,33 @@ xpack.notification.email:
|
||||||
|
|
||||||
{% if es_enable_http_ssl | bool %}
|
{% if es_enable_http_ssl | bool %}
|
||||||
xpack.security.http.ssl.enabled: true
|
xpack.security.http.ssl.enabled: true
|
||||||
|
{% if es_ssl_keystore and es_ssl_truststore %}
|
||||||
|
xpack.security.http.ssl.keystore.path: : "{{ es_ssl_certificate_path }}/{{ es_ssl_keystore | basename }}"
|
||||||
|
xpack.security.http.ssl.truststore.path: "{{ es_ssl_certificate_path }}/{{ es_ssl_truststore | basename }}"
|
||||||
|
{% elif es_ssl_key and es_ssl_certificate%}
|
||||||
xpack.security.http.ssl.key: "{{ es_ssl_certificate_path }}/{{ es_ssl_key | basename }}"
|
xpack.security.http.ssl.key: "{{ es_ssl_certificate_path }}/{{ es_ssl_key | basename }}"
|
||||||
xpack.security.http.ssl.certificate: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate | basename }}"
|
xpack.security.http.ssl.certificate: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate | basename }}"
|
||||||
#xpack.security.http.ssl.client_authentication: optional
|
|
||||||
{% if es_ssl_certificate_authority %}
|
{% if es_ssl_certificate_authority %}
|
||||||
xpack.security.http.ssl.certificate_authorities: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate_authority | basename }}"
|
xpack.security.http.ssl.certificate_authorities: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate_authority | basename }}"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
# xpack.security.http.ssl.enabled: false
|
# xpack.security.http.ssl.enabled: false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if es_enable_transport_ssl | bool %}
|
{% if es_enable_transport_ssl | bool %}
|
||||||
xpack.security.transport.ssl.enabled: true
|
xpack.security.transport.ssl.enabled: true
|
||||||
#xpack.security.transport.ssl.verification_mode: certificate
|
xpack.security.transport.ssl.verification_mode: {{ es_ssl_verification_mode }}
|
||||||
|
{% if es_ssl_keystore and es_ssl_truststore %}
|
||||||
|
xpack.security.transport.ssl.keystore.path: : "{{ es_ssl_certificate_path }}/{{ es_ssl_keystore | basename }}"
|
||||||
|
xpack.security.transport.ssl.truststore.path: "{{ es_ssl_certificate_path }}/{{ es_ssl_truststore | basename }}"
|
||||||
|
{% elif es_ssl_key and es_ssl_certificate%}
|
||||||
|
xpack.security.transport.ssl.key: "{{ es_ssl_certificate_path }}/{{ es_ssl_key | basename }}"
|
||||||
|
xpack.security.transport.ssl.certificate: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate | basename }}"
|
||||||
|
{% if es_ssl_certificate_authority %}
|
||||||
|
xpack.security.transport.ssl.certificate_authorities: "{{ es_ssl_certificate_path }}/{{ es_ssl_certificate_authority | basename }}"
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
# xpack.security.transport.ssl.enabled: false
|
# xpack.security.transport.ssl.enabled: false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue