From 950506216d208c731f79ff19fc255594ef0bed4b Mon Sep 17 00:00:00 2001 From: Gethin James Date: Wed, 8 Feb 2017 14:06:02 +0100 Subject: [PATCH 1/3] SEARCH-304: Making alfresco.secureComms configurable --- .../main/java/org/apache/solr/core/CoreDescriptorDecorator.java | 1 + 1 file changed, 1 insertion(+) diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java b/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java index fd7685205..22ae4c9a1 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java @@ -44,6 +44,7 @@ public class CoreDescriptorDecorator "alfresco.port", "alfresco.baseUrl", "alfresco.port.ssl", + "alfresco.secureComms", "alfresco.encryption.ssl.keystore.passwordFileLocation", "alfresco.encryption.ssl.truststore.passwordFileLocation", "alfresco.encryption.ssl.keystore.location", From 6d49bf0d1774c99ea8fd387d8c434089e30461c5 Mon Sep 17 00:00:00 2001 From: Gethin James Date: Thu, 9 Feb 2017 10:35:13 +0100 Subject: [PATCH 2/3] SEARCH-304: Adding docker files for ssl testing --- .../src/docker/compose-ssl-dynamic.yml | 61 ---------------- .../packaging/src/docker/compose-ssl.yml | 63 ----------------- .../packaging/src/docker/ssl/Dockerfile | 15 ++++ .../src/docker/ssl/docker-compose.yml | 69 +++++++++++++++++++ 4 files changed, 84 insertions(+), 124 deletions(-) delete mode 100644 search-services/packaging/src/docker/compose-ssl-dynamic.yml delete mode 100644 search-services/packaging/src/docker/compose-ssl.yml create mode 100644 search-services/packaging/src/docker/ssl/Dockerfile create mode 100644 search-services/packaging/src/docker/ssl/docker-compose.yml diff --git a/search-services/packaging/src/docker/compose-ssl-dynamic.yml b/search-services/packaging/src/docker/compose-ssl-dynamic.yml deleted file mode 100644 index 86382af44..000000000 --- a/search-services/packaging/src/docker/compose-ssl-dynamic.yml +++ /dev/null @@ -1,61 +0,0 @@ -version: '2' -services: - repo: - image: docker-internal.alfresco.com/platform:latest - environment: - JAVA_OPTS : "-Dsolr.secureComms=https -Dsolr.useDynamicShardRegistration=true" - ports: - - "7203:7203" #JMX connect via service:jmx:rmi:///jndi/rmi://localhost:7203/jmxrmi - - "5005:5005" #Java debugging - - "8082:8080" #Browser port - share: - image: docker-internal.alfresco.com/share:5.2.1-demo - ports: - - "8081:8080" - environment: - - "REPO_HOST=repo:8080" - solr6: - image: docker-internal.alfresco.com/search-services:develop-latest - command: [ "/opt/alfresco-solr/solr/bin/solr", "start", "-f", "-p","8084", "-a", - "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"] - expose: - - "8084" - environment: - #Solr needs to know how to register itself with Alfresco - SOLR_ALFRESCO_HOST: repo - SOLR_ALFRESCO_PORT: 8080 - #Alfresco needs to know how to call solr - SOLR_SOLR_HOST: solr6 - SOLR_SOLR_PORT: 8084 - - #SSL setup - #SOLR_SSL_KEY_STORE: /opt/alfresco/alf_data/keystore/ssl.repo.client.keystore - #SOLR_SSL_KEY_STORE_PASSWORD: kT9X6oe68t - #SOLR_SSL_TRUST_STORE: /opt/alfresco/alf_data/keystore/ssl.repo.client.truststore - #SOLR_SSL_TRUST_STORE_PASSWORD: kT9X6oe68t - - ports: - - "8084:8084" #Browser port - - "1044:1044" #Java debugging - volumes_from: - - repo:ro - -#docker-compose -f compose-ssl-dynamic.yml up -#Bash to Alfresco instance: docker exec -it [containerid] bash -# cd /opt/alfresco/alf_data/keystore -# chmod +x generate_keystores.sh -# ./generate_keystores.sh -# cp ~/ssl.repo.client.keystore /opt/alfresco/alf_data/keystore/ -# cp ~/ssl.repo.client.truststore /opt/alfresco/alf_data/keystore/ -#Bash to Solr instance: docker exec -it [containerid] bash -# cd /opt/alfresco-solr/solrhome/templates/rerank/conf -# rm ssl.repo.client.truststore -# rm ssl.repo.client.keystore -# cp /opt/alfresco/alf_data/keystore/ssl.repo.client.keystore . -# cp /opt/alfresco/alf_data/keystore/ssl.repo.client.truststore . -# edit solrhome/templates/rerank/conf/solrcore.properties and set alfresco.secureComms=https -# Uncomment the SSL setup config (above) -# Stop and restart -# Go to Index Server Sharding admin page -# The index server is: https://solr6:8084/solr -# Create the alfresco and archive cores using the buttons \ No newline at end of file diff --git a/search-services/packaging/src/docker/compose-ssl.yml b/search-services/packaging/src/docker/compose-ssl.yml deleted file mode 100644 index 46706f804..000000000 --- a/search-services/packaging/src/docker/compose-ssl.yml +++ /dev/null @@ -1,63 +0,0 @@ -version: '2' -services: - repo: - image: docker-internal.alfresco.com/platform:latest - environment: - JAVA_OPTS : "-Dsolr.useDynamicShardRegistration=false - -Dsolr.host=solr6 -Dsolr.port.ssl=8084 -Dsolr.secureComms=https - -Dsolr.base.url=/solr -Dindex.subsystem.name=solr6" - ports: - - "7203:7203" #JMX connect via service:jmx:rmi:///jndi/rmi://localhost:7203/jmxrmi - - "5005:5005" #Java debugging - - "8082:8080" #Browser port - share: - image: docker-internal.alfresco.com/share:5.2.1-demo - ports: - - "8081:8080" - environment: - - "REPO_HOST=repo:8080" - solr6: - image: docker-internal.alfresco.com/search-services:develop-latest - command: [ "/opt/alfresco-solr/solr/bin/solr", "start", "-f", "-p","8084", "-a", - "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"] - expose: - - "8084" - environment: - #Solr needs to know how to register itself with Alfresco - SOLR_ALFRESCO_HOST: repo - SOLR_ALFRESCO_PORT: 8080 - #Alfresco needs to know how to call solr - SOLR_SOLR_HOST: solr6 - SOLR_SOLR_PORT: 8084 - - #Create the default alfresco and archive cores - #SOLR_CREATE_ALFRESCO_DEFAULTS : alfresco,archive - - #SOLR_OPTS: "$SOLR_OPTS -Djavax.net.debug=SSL,keymanager,trustmanager" - #SOLR_SSL_KEY_STORE: /opt/alfresco/alf_data/keystore/ssl.repo.client.keystore - #SOLR_SSL_KEY_STORE_PASSWORD: kT9X6oe68t - #SOLR_SSL_TRUST_STORE: /opt/alfresco/alf_data/keystore/ssl.repo.client.truststore - #SOLR_SSL_TRUST_STORE_PASSWORD: kT9X6oe68t - - ports: - - "8084:8084" #Browser port - - "1044:1044" #Java debugging - volumes_from: - - repo:ro - -#docker-compose -f compose-ssl.yml up -#Bash to Alfresco instance: docker exec -it [containerid] bash -# cd /opt/alfresco/alf_data/keystore -# chmod +x generate_keystores.sh -# ./generate_keystores.sh -# cp ~/ssl.repo.client.keystore /opt/alfresco/alf_data/keystore/ -# cp ~/ssl.repo.client.truststore /opt/alfresco/alf_data/keystore/ -#Bash to Solr instance: docker exec -it [containerid] bash -# cd /opt/alfresco-solr/solrhome/templates/rerank/conf -# rm ssl.repo.client.truststore -# rm ssl.repo.client.keystore -# cp /opt/alfresco/alf_data/keystore/ssl.repo.client.keystore . -# cp /opt/alfresco/alf_data/keystore/ssl.repo.client.truststore . -# edit solrhome/templates/rerank/conf/solrcore.properties and set alfresco.secureComms=https -# Uncomment the SSL setup config (above) and uncomment the SOLR_CREATE_ALFRESCO_DEFAULTS -# Stop and restart \ No newline at end of file diff --git a/search-services/packaging/src/docker/ssl/Dockerfile b/search-services/packaging/src/docker/ssl/Dockerfile new file mode 100644 index 000000000..f08494dc8 --- /dev/null +++ b/search-services/packaging/src/docker/ssl/Dockerfile @@ -0,0 +1,15 @@ +# Alfresco Solr Docker image SSL +FROM docker-internal.alfresco.com/platform:latest +MAINTAINER Gethin James, gethin.james@alfresco.com + +RUN cd /opt/alfresco/alf_data/keystore && chmod +x generate_keystores.sh \ + && ./generate_keystores.sh +RUN mkdir -p /opt/alfresco/sharedkeystore \ + && cp /opt/alfresco/alf_data/keystore/* /opt/alfresco/sharedkeystore/ \ + && cp /root/ssl.repo.client.keystore /opt/alfresco/sharedkeystore/ \ + && cp /root/ssl.repo.client.truststore /opt/alfresco/sharedkeystore/ \ + && cp /root/ssl.keystore /opt/alfresco/sharedkeystore/ \ + && cp /root/ssl.truststore /opt/alfresco/sharedkeystore/ \ + && chown -R alfresco:alfresco /opt/alfresco/sharedkeystore + +VOLUME /opt/alfresco/sharedkeystore diff --git a/search-services/packaging/src/docker/ssl/docker-compose.yml b/search-services/packaging/src/docker/ssl/docker-compose.yml new file mode 100644 index 000000000..4030d9916 --- /dev/null +++ b/search-services/packaging/src/docker/ssl/docker-compose.yml @@ -0,0 +1,69 @@ +version: '2' +services: + repo: + image: docker-internal.alfresco.com/platform:latest + environment: + JAVA_OPTS : "-Dsolr.useDynamicShardRegistration=false + -Dsolr.host=solr6 -Dsolr.port.ssl=8084 -Dsolr.secureComms=https + -Dsolr.base.url=/solr -Dindex.subsystem.name=solr6" + ports: + - "7203:7203" #JMX connect via service:jmx:rmi:///jndi/rmi://localhost:7203/jmxrmi + - "5005:5005" #Java debugging + - "8082:8080" #Browser port + share: + image: docker-internal.alfresco.com/share:5.2.1-demo + ports: + - "8081:8080" + environment: + - "REPO_HOST=repo:8080" + solr6: + image: docker-internal.alfresco.com/search-services:1.0.2-SNAPSHOT + command: [ "/opt/alfresco-search-services/solr/bin/solr", "start", "-f", "-p","8084", "-a", + "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"] + expose: + - "8084" + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: repo + SOLR_ALFRESCO_PORT: 8080 + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: solr6 + SOLR_SOLR_PORT: 8084 + + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS : alfresco,archive + + #Alfresco <-> Jetty + SOLR_OPTS: '$SOLR_OPTS -Djavax.net.ssl.keyStoreType=JCEKS -Djavax.net.ssl.trustStoreType=JCEKS -Dsolr.allow.unsafe.resourceloading=true -Dsolr.ssl.checkPeerName=false' + SOLR_SSL_KEY_STORE: /opt/alfresco/alf_data/keystore/ssl.repo.client.keystore + SOLR_SSL_KEY_STORE_PASSWORD: kT9X6oe68t + SOLR_SSL_TRUST_STORE: /opt/alfresco/alf_data/keystore/ssl.repo.client.truststore + SOLR_SSL_TRUST_STORE_PASSWORD: kT9X6oe68t + SOLR_SSL_NEED_CLIENT_AUTH : "true" + SOLR_SSL_WANT_CLIENT_AUTH : "false" + + #Alfresco <-> trackers + SOLR_ALFRESCO_SECURECOMMS : https + SOLR_ALFRESCO_ENCRYPTION_SSL_KEYSTORE_PASSWORDFILELOCATION: /opt/alfresco/alf_data/keystore/ssl-keystore-passwords.properties + SOLR_ALFRESCO_ENCRYPTION_SSL_KEYSTORE_LOCATION: /opt/alfresco/alf_data/keystore/ssl.repo.client.keystore + SOLR_ALFRESCO_ENCRYPTION_SSL_KEYSTORE_TYPE : JCEKS + #SOLR_ALFRESCO_ENCRYPTION_SSL_KEYSTORE_PROVIDER + SOLR_ALFRESCO_ENCRYPTION_SSL_TRUSTSTORE_PASSWORDFILELOCATION: /opt/alfresco/alf_data/keystore/ssl-truststore-passwords.properties + SOLR_ALFRESCO_ENCRYPTION_SSL_TRUSTSTORE_LOCATION: /opt/alfresco/alf_data/keystore/ssl.repo.client.truststore + SOLR_ALFRESCO_ENCRYPTION_SSL_TRUSTSTORE_TYPE : JCEKS + #SOLR_ALFRESCO_ENCRYPTION_SSL_TRUSTSTORE_PROVIDER + ports: + - "8084:8084" #Browser port + - "1044:1044" #Java debugging + volumes_from: + - repo:ro + +#docker-compose up +#Solr fails to start. +#Bash to Alfresco instance: docker exec -it [containerid] bash +# cd /opt/alfresco/alf_data/keystore +# chmod +x generate_keystores.sh +# ./generate_keystores.sh +# cp /root/ssl.repo.client.keystore /opt/alfresco/alf_data/keystore/ +# cp /root/ssl.repo.client.truststore /opt/alfresco/alf_data/keystore/ +#restart docker-compose \ No newline at end of file From 8ba3a9a677627977b1cb24adfabc265e05e2bfe0 Mon Sep 17 00:00:00 2001 From: Gethin James Date: Thu, 9 Feb 2017 14:12:20 +0100 Subject: [PATCH 3/3] SEARCH-238: Updating the README --- .../packaging/src/main/resources/README.MD | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/search-services/packaging/src/main/resources/README.MD b/search-services/packaging/src/main/resources/README.MD index 62ad74691..ae7a7843f 100644 --- a/search-services/packaging/src/main/resources/README.MD +++ b/search-services/packaging/src/main/resources/README.MD @@ -1,7 +1,21 @@ ## Alfresco Search Services Alfresco Search Services ${project.version} using Alfresco ${alfresco-solr.version} and Apache Solr ${solr.version} +## Solr 6 +Solr 6 is now available as a drop in replacement for Solr 4 with Alfresco 5.2. + +Solr 6 brings with it a number of new features: + + - SHARDING by DATE, PROPERTY & DBID + - FINGERPRINTS to find similar documents + - Indexing Multiple Document Versions + - Full SSL support with sharding + +Find out more about Solr 6 and how it differs here: http://docs.alfresco.com/5.2/concepts/solr6-home.html + ### Install & Run +**Please read the [Installation Documentation](http://docs.alfresco.com/5.2/concepts/solr6-install-config.html).** + To run, unzip then ``` solr/bin/solr start