66 Commits
Author SHA1 Message Date
Bertrand Gouny 87fea6c869 Merge branch 'hotfix-0.6.2' into stable 2014-06-17 09:43:26 +02:00
Bertrand Gouny c32c1683ed reorganisation code 2014-06-17 09:43:13 +02:00
Bertrand Gouny 5606ef1938 [twgit] Init hotfix 'hotfix-0.6.2'. 2014-06-17 09:28:20 +02:00
osixia 5125257293 Update README.md 2014-06-17 09:26:56 +02:00
osixia 2c6ceec151 Create LICENSE.txt 2014-06-17 09:26:42 +02:00
osixia d9f06d5579 Update README.md 2014-06-17 09:12:15 +02:00
osixia a31e2ce8bd Update README.md 2014-06-17 09:10:50 +02:00
Bertrand Gouny 676d3d736d Merge branch 'hotfix-0.6.1' into stable 2014-05-09 15:57:15 +02:00
Bertrand Gouny a413a31ed3 nouvelle baseimage + maj tests 2014-05-09 15:57:03 +02:00
Bertrand Gouny c00342523e [twgit] Init hotfix 'hotfix-0.6.1'. 2014-05-09 15:25:39 +02:00
Bertrand Gouny 08b5a758be Merge branch 'release-0.6.0' into stable 2014-05-08 17:54:43 +02:00
Bertrand Gouny 38e78710af Merge branch 'feature-new-base-image' into release-0.6.0 2014-05-08 17:54:31 +02:00
Bertrand Gouny e3588f93f2 [twgit] Init release 'release-0.6.0'. 2014-05-08 17:54:05 +02:00
Bertrand Gouny d7245df8bb osixia base 2014-05-08 17:53:41 +02:00
Bertrand Gouny 60293c62cb [twgit] Init feature 'feature-new-base-image'. 2014-05-07 23:25:52 +02:00
Bertrand Gouny 5f6a2c1530 Merge branch 'hotfix-0.5.1' into stable 2014-05-07 14:25:05 +02:00
Bertrand Gouny e54327660a hotfix 2014-05-07 14:24:55 +02:00
Bertrand Gouny b8f71b7953 [twgit] Init hotfix 'hotfix-0.5.1'. 2014-05-07 14:17:57 +02:00
osixia 14ebe80b99 Update README.md 2014-05-07 14:15:01 +02:00
Bertrand Gouny f50c6b3a97 Merge branch 'release-0.5.0' into stable 2014-05-07 14:12:34 +02:00
Bertrand Gouny 72f68af0fd Merge branch 'feature-ldapi' into release-0.5.0 2014-05-07 14:12:02 +02:00
Bertrand Gouny b9e85313b1 Merge branch 'feature-tests' into release-0.5.0 2014-05-07 14:11:48 +02:00
Bertrand Gouny bcaa13ac77 [twgit] Init release 'release-0.5.0'. 2014-05-07 14:11:29 +02:00
Bertrand Gouny 31b6c31d5e tests 2014-05-07 14:09:20 +02:00
Bertrand Gouny bd87b91d3a ldapi 2014-05-07 10:59:52 +02:00
Bertrand Gouny 4800e140cf [twgit] Init feature 'feature-ldapi'. 2014-05-07 10:57:57 +02:00
Bertrand Gouny df81b9ec7e [twgit] Init feature 'feature-tests'. 2014-05-07 10:57:33 +02:00
Bertrand Gouny ae2d4de5ec Merge branch 'release-0.4.0' into stable 2014-05-07 10:54:03 +02:00
Bertrand Gouny 9c542cafe2 Merge branch 'feature-clean' into release-0.4.0 2014-05-07 10:53:45 +02:00
Bertrand Gouny 2ceab05d59 [twgit] Init release 'release-0.4.0'. 2014-05-07 10:53:18 +02:00
Bertrand Gouny c5b29549a2 clean 2014-05-07 10:52:59 +02:00
Bertrand Gouny 2d97fce4e9 [twgit] Init feature 'feature-clean'. 2014-05-07 10:00:16 +02:00
Bertrand Gouny c057d3c2ac Merge branch 'hotfix-0.3.1' into stable 2014-05-07 08:29:57 +02:00
Bertrand Gouny 73bf28d2c5 tests 2014-05-07 08:29:43 +02:00
Bertrand Gouny 4e610b3b46 [twgit] Init hotfix 'hotfix-0.3.1'. 2014-05-06 19:38:45 +02:00
osixia 56705e7840 Delete delete-container.sh 2014-05-06 18:09:27 +02:00
osixia 69ac87fa51 Delete prepare.sh 2014-05-06 18:09:21 +02:00
osixia 01a9dc9d72 Delete end.sh 2014-05-06 18:09:01 +02:00
Bertrand Gouny 88ab3c3a3e Merge branch 'release-0.3.0' into stable 2014-05-06 18:07:39 +02:00
Bertrand Gouny 6026e823b0 Merge branch 'feature-tests' into release-0.3.0 2014-05-06 18:07:10 +02:00
Bertrand Gouny f6afa826b4 [twgit] Init release 'release-0.3.0'. 2014-05-06 18:01:43 +02:00
Bertrand Gouny 16843bee56 tests 2014-05-06 18:01:09 +02:00
Bertrand Gouny 144429b34d tests 2014-05-05 18:04:59 +02:00
Bertrand Gouny c7d1e15015 [twgit] Init feature 'feature-tests'. 2014-05-05 16:16:05 +02:00
osixia 0a06538f80 Update Dockerfile 2014-05-05 14:44:18 +02:00
osixia 18561ee776 Update README.md 2014-05-05 14:40:27 +02:00
Bertrand Gouny 288df9e3f5 Merge branch 'hotfix-0.2.2' into stable 2014-05-05 14:31:18 +02:00
Bertrand Gouny cc9d731b8a baseimage 2014-05-05 14:31:15 +02:00
Bertrand Gouny fc8d97628f [twgit] Init hotfix 'hotfix-0.2.2'. 2014-05-05 14:29:41 +02:00
osixia 37c816a1ce Update README.md 2014-05-05 14:24:40 +02:00
osixia d6a9b1cb3f Update README.md 2014-05-05 14:19:29 +02:00
Bertrand Gouny 9e3d056cc1 Merge branch 'hotfix-0.2.1' into stable 2014-05-05 13:58:14 +02:00
Bertrand Gouny a7f76b5604 tls.ldif 2014-05-05 13:56:51 +02:00
Bertrand Gouny c00fd8cfc7 [twgit] Init hotfix 'hotfix-0.2.1'. 2014-05-05 13:53:36 +02:00
Bertrand Gouny 88ecf48cb8 Merge branch 'release-0.2.0' into stable 2014-05-05 11:40:28 +02:00
Bertrand Gouny 6287ae1c09 Merge branch 'feature-ldaps' into release-0.2.0 2014-05-05 11:40:09 +02:00
Bertrand Gouny 06653234d0 [twgit] Init release 'release-0.2.0'. 2014-05-05 11:39:38 +02:00
Bertrand Gouny 2d0fd75ed8 TLS 2014-05-05 11:24:54 +02:00
Bertrand Gouny b020cc9cff tls 2014-05-02 17:34:12 +02:00
Bertrand Gouny 3482221fb2 tls 2014-04-29 17:51:06 +02:00
Bertrand Gouny ac3f8d96b5 [twgit] Init feature 'feature-ldaps'. 2014-04-29 09:37:22 +02:00
Bertrand Gouny a3ebe08d16 Merge branch 'release-0.1.0' into stable 2014-04-25 13:35:04 +02:00
Bertrand Gouny 1dfdaeeee0 Merge branch 'feature-new-readme' into release-0.1.0 2014-04-25 13:33:34 +02:00
Bertrand Gouny f6702fc01e [twgit] Init release 'release-0.1.0'. 2014-04-25 13:33:00 +02:00
Bertrand Gouny f6e770b916 new readme 2014-04-25 11:55:35 +02:00
Bertrand Gouny aa4d17a5c1 [twgit] Init feature 'feature-new-readme'. 2014-04-25 11:52:06 +02:00
24 changed files with 428 additions and 89 deletions

No files matched your search

+32 -18
View File
@@ -1,33 +1,47 @@
FROM phusion/baseimage:0.9.8 FROM osixia/baseimage
MAINTAINER Nick Stenning <nick@whiteink.com> MAINTAINER Bertrand Gouny <bertrand.gouny@osixia.fr>
ENV HOME /root # From Nick Stenning's work
# https://github.com/nickstenning/docker-slapd
# Default configuration: can be overridden at the docker command line
ENV LDAP_ADMIN_PWD toor
ENV LDAP_ORGANISATION Example Inc.
ENV LDAP_DOMAIN example.com
# /!\ To store the data outside the container,
# mount /var/lib/ldap and /etc/ldap/slapd.d as a data volume add
# -v /some/host/directory:/var/lib/ldap and -v /some/other/host/directory:/etc/ldap/slapd.d
# to the run command
# Disable SSH # Disable SSH
RUN rm -rf /etc/service/sshd /etc/my_init.d/00_regen_ssh_host_keys.sh # RUN rm -rf /etc/service/sshd /etc/my_init.d/00_regen_ssh_host_keys.sh
# Enable dnsmasq
RUN /etc/enable-service dnsmasq
# Use baseimage-docker's init system. # Use baseimage-docker's init system.
CMD ["/sbin/my_init"] CMD ["/sbin/my_init"]
# Configure apt # Resynchronize the package index files from their sources
RUN echo 'deb http://us.archive.ubuntu.com/ubuntu/ precise universe' >> /etc/apt/sources.list
RUN apt-get -y update RUN apt-get -y update
# Install slapd # Install openldap (slapd) and ldap-utils
RUN LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y slapd RUN LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -y slapd ldap-utils openssl
# Default configuration: can be overridden at the docker command line
ENV LDAP_ROOTPASS toor
ENV LDAP_ORGANISATION Acme Widgets Inc.
ENV LDAP_DOMAIN example.com
# Expose ldap default port
EXPOSE 389 EXPOSE 389
# Create TLS certificats directory
RUN mkdir /etc/ldap/ssl
# Add config directory
RUN mkdir /etc/ldap/config
ADD service/slapd/config /etc/ldap/config
# Add slapd deamon
RUN mkdir /etc/service/slapd RUN mkdir /etc/service/slapd
ADD slapd.sh /etc/service/slapd/run ADD service/slapd/slapd.sh /etc/service/slapd/run
# To store the data outside the container, mount /var/lib/ldap as a data volume
# Clear out the local repository of retrieved package files
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# vim:ts=8:noet:
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Osixia
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+24 -29
View File
@@ -1,38 +1,33 @@
## slapd # docker-openldap
A basic configuration of the OpenLDAP server, slapd, with support for data Fork of Nick Stenning docker-slapd :
volumes. https://github.com/nickstenning/docker-slapd
This image will initialize a basic configuration of slapd. Most common schemas Add support of tls.
are preloaded (all the schemas that come preloaded with the default Ubuntu
Precise install of slapd), but the only record added to the directory will be
the root organisational unit.
You can (and should) configure the following by providing environment variables ### How to use tls
to `docker run`:
- `LDAP_DOMAIN` sets the LDAP root domain. (e.g. if you provide `foo.bar.com` Add `-v some/host/dir:/etc/ldap/ssl` and `--dns=127.0.0.1` to the run command.
here, the root of your directory will be `dc=foo,dc=bar,dc=com`)
- `LDAP_ORGANISATION` sets the human-readable name for your organisation (e.g.
`Acme Widgets Inc.`)
- `LDAP_ROOTPASS` sets the LDAP admin user password (i.e. the password for
`cn=admin,dc=example,dc=com` if your domain was `example.com`)
For example, to start a container running slapd for the `mycorp.com` domain, `some/host/dir` must contain a least 3 files :
with data stored in `/data/ldap` on the host, use the following: - `ca.crt` certificate authority certificate
- `ldap.crt` ldap server certificate
- `ldap.key` ldap server certificate private key
docker run -v /data/ldap:/var/lib/ldap \ and optionaly `dhparam.pem` this file is genereted automaticaly if not present.
-e LDAP_DOMAIN=mycorp.com \
-e LDAP_ORGANISATION="My Mega Corporation" \
-e LDAP_ROOTPASS=s3cr3tpassw0rd \
-d nickstenning/slapd
You can find out which port the LDAP server is bound to on the host by running `--dns=127.0.0.1` allow to use the certificate cn correctly.
`docker ps` (or `docker port <container_id> 389`). You could then load an LDIF
file (to set up your directory) like so:
ldapadd -h localhost -p <host_port> -c -x -D cn=admin,dc=mycorp,dc=com -W -f
data.ldif
**NB**: Please be aware that by default docker will make the LDAP port ### Example
accessible from anywhere if the host firewall is unconfigured.
docker run --dns=127.0.0.1 \
-v /data/ldap/db:/var/lib/ldap \
-v /data/ldap/config:/etc/ldap/slapd.d \
-v /data/ldap/ssl/:/etc/ldap/ssl \
-v /data/ldap/log/:/var/log \
-e LDAP_DOMAIN=example.com \
-e LDAP_ORGANISATION="Example Corp." \
-e LDAP_ROOTPASS=toor \
-p 389:389 -d osixia/openldap
+17
View File
@@ -0,0 +1,17 @@
dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ldap/ssl/ca.crt
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/ssl/ldap.crt
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ldap/ssl/ldap.key
-
replace: olcTLSDHParamFile
olcTLSDHParamFile: /etc/ldap/ssl/dhparam.pem
-
replace: olcTLSVerifyClient
olcTLSVerifyClient: never
+4
View File
@@ -0,0 +1,4 @@
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
+88
View File
@@ -0,0 +1,88 @@
#!/bin/sh
set -eu
status () {
echo "---> ${@}" >&2
}
set -x
: LDAP_ADMIN_PWD=${LDAP_ADMIN_PWD}
: LDAP_DOMAIN=${LDAP_DOMAIN}
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
############ Base config ############
if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
status "configuring slapd database"
cat <<EOF | debconf-set-selections
slapd slapd/internal/generated_adminpw password ${LDAP_ADMIN_PWD}
slapd slapd/internal/adminpw password ${LDAP_ADMIN_PWD}
slapd slapd/password2 password ${LDAP_ADMIN_PWD}
slapd slapd/password1 password ${LDAP_ADMIN_PWD}
slapd slapd/dump_database_destdir string /var/backups/slapd-VERSION
slapd slapd/domain string ${LDAP_DOMAIN}
slapd shared/organization string ${LDAP_ORGANISATION}
slapd slapd/backend string HDB
slapd slapd/purge_database boolean true
slapd slapd/move_old_database boolean true
slapd slapd/allow_ldap_v2 boolean false
slapd slapd/no_configuration boolean false
slapd slapd/dump_database select when needed
EOF
dpkg-reconfigure -f noninteractive slapd
touch /var/lib/ldap/docker_bootstrapped
else
status "slapd database found"
fi
############ Custom config ############
if [ ! -e /etc/ldap/config/docker_bootstrapped ]; then
status "Custom config"
slapd -h "ldapi:///" -u openldap -g openldap
chown -R openldap:openldap /etc/ldap
# TLS
if [ -e /etc/ldap/ssl/ldap.crt ] && [ -e /etc/ldap/ssl/ldap.key ] && [ -e /etc/ldap/ssl/ca.crt ]; then
status "certificates found"
chmod 600 /etc/ldap/ssl/ldap.key
# create DHParamFile if not found
[ -f /etc/ldap/ssl/dhparam.pem ] || openssl dhparam -out /etc/ldap/ssl/dhparam.pem 2048
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ldap/config/auto/tls.ldif -Q
# add fake dnsmasq route to certificate cn
cn=$(openssl x509 -in /etc/ldap/ssl/ldap.crt -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
echo "127.0.0.1 " $cn >> /etc/dhosts
fi
# Replication
# todo :)
# Other config files
for f in $(find /etc/ldap/config -maxdepth 1 -name \*.ldif -type f); do
status "Processing file ${f}"
ldapmodify -Y EXTERNAL -H ldapi:/// -f $f -Q
done
kill -INT `cat /run/slapd/slapd.pid`
touch /etc/ldap/config/docker_bootstrapped
else
status "found already-configured slapd"
fi
status "starting slapd on default port 389"
set -x
exec /usr/sbin/slapd -h "ldap:///" -u openldap -g openldap -d -1
-42
View File
@@ -1,42 +0,0 @@
#!/bin/sh
set -eu
status () {
echo "---> ${@}" >&2
}
set -x
: LDAP_ROOTPASS=${LDAP_ROOTPASS}
: LDAP_DOMAIN=${LDAP_DOMAIN}
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
status "configuring slapd for first run"
cat <<EOF | debconf-set-selections
slapd slapd/internal/generated_adminpw password ${LDAP_ROOTPASS}
slapd slapd/internal/adminpw password ${LDAP_ROOTPASS}
slapd slapd/password2 password ${LDAP_ROOTPASS}
slapd slapd/password1 password ${LDAP_ROOTPASS}
slapd slapd/dump_database_destdir string /var/backups/slapd-VERSION
slapd slapd/domain string ${LDAP_DOMAIN}
slapd shared/organization string ${LDAP_ORGANISATION}
slapd slapd/backend string HDB
slapd slapd/purge_database boolean true
slapd slapd/move_old_database boolean true
slapd slapd/allow_ldap_v2 boolean false
slapd slapd/no_configuration boolean false
slapd slapd/dump_database select when needed
EOF
dpkg-reconfigure -f noninteractive slapd
touch /var/lib/ldap/docker_bootstrapped
else
status "found already-configured slapd"
fi
status "starting slapd"
set -x
exec /usr/sbin/slapd -h "ldap:///" -u openldap -g openldap -d 0
Executable
+56
View File
@@ -0,0 +1,56 @@
#!/bin/sh
# Usage
# sudo ./test.sh
# add -v for verbose mode
verbose=$1
error=0
ok=0
echo_start () {
echo "------- Start $* test -------"
}
echo_error () {
echo "\n$(tput setaf 1)/!\ $* failed$(tput sgr0)\n"
error=`expr $error + 1`
}
echo_ok () {
echo "\n--> $* ok\n"
ok=`expr $ok + 1`
}
run_test () {
fction=$1
out=test/test.out
echo_start $fction
if [ -z ${verbose} ]; then
./test/$1.sh > $out 2>&1
else
./test/$1.sh | tee $out 2>&1
fi
if [ "$(grep -c "$2" $out)" -eq 0 ]; then
echo_error $fction
else
echo_ok $fction
fi
rm $out
}
./test/tools/prepare.sh > /dev/null 2>&1
run_test build "Successfully built"
run_test simple "dn: dc=example,dc=com"
run_test tls "dn: dc=example,dc=com"
run_test db "dn: dc=otherdomain,dc=com"
./test/tools/end.sh > /dev/null 2>&1
echo "------- Test finished -------"
echo $error " failed " $ok " passed"
Executable
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
docker.io build -t $openldapTestImage .
#docker.io build --no-cache=true -t $openldapTestImage .
Executable
+24
View File
@@ -0,0 +1,24 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
if [ -d "$openldapTestDir" ]; then
rm -r $openldapTestDir
fi
mkdir $openldapTestDir
mkdir $openldapTestDir/db
mkdir $openldapTestDir/config
runOptions="-e LDAP_DOMAIN=otherdomain.com -v $openldapTestDir/db:/var/lib/ldap -v $openldapTestDir/config:/etc/ldap/slapd.d"
. $dir/tools/run-simple.sh
$dir/tools/delete-container.sh
runOptions="-v $openldapTestDir/db:/var/lib/ldap -v $openldapTestDir/config:/etc/ldap/slapd.d"
. $dir/tools/run-simple.sh
echo "ldapsearch -x -h $IP -b dc=otherdomain,dc=com"
ldapsearch -x -h $IP -b dc=otherdomain,dc=com
rm -r $openldapTestDir
$dir/tools/delete-container.sh
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
. $dir/tools/run-simple.sh
echo "ldapsearch -x -h $IP -b dc=example,dc=com"
ldapsearch -x -h $IP -b dc=example,dc=com
$dir/tools/delete-container.sh
+21
View File
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDZzCCAh+gAwIBAgIEU2ehnzANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDExhU
ZXN0IENBIENvbXBhbnkgLSBPc2l4aWEwHhcNMTQwNTA1MTQzNTExWhcNMTUwNTA1
MTQzNTExWjAjMSEwHwYDVQQDExhUZXN0IENBIENvbXBhbnkgLSBPc2l4aWEwggFS
MA0GCSqGSIb3DQEBAQUAA4IBPwAwggE6AoIBMQDdf+DVT4rPGxNB1SwL6git8Lw1
AsEvd+rHAMKyCSRxbJywvtN/OKxVz4qWCkoRvcffG0uyoWRE+1w6DnT8ON+8uvuI
2wbrLydFxuZdouZZJiX0QbXWra9lQpDWO2EAiPFchbN/K9+fXwV4SpsI3B7bGwM/
sVtn6khbxvtzn+9yUmjIpA7q8i9NLVoX8UwagANtFIVE/Dc/MwaX7ayu6yYiNLXx
GHzWXzQcTS6vWcVaf+pkq6/zZdXn0jVNfqnwAu3ooTWO3BeuQvGaQeRpRVlM0lPh
oM7YFhR8b13Y5EmkZtSjoM+7ZOKF5mqBvluj65gIcQxnx4l4YCZ4MUVAlZBYc87h
2JSYrAlq6eBhJzkNDi21jqtqSr1i08XICZrz4Vk8lrexWbRGzyz537La1LYNAgMB
AAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcEADAdBgNVHQ4E
FgQUnod7FQfSDLyWVeBSTTdCriQoEHYwDQYJKoZIhvcNAQELBQADggExAGtv/8Ot
3Acs+KlR+0OBtnWe6sfzfQ2fRJvol7szp0Nto+zTZLbtCEvNGIVkd8eLrm9a9soa
pY/pC6dAPPZHho/G46quSjtSARU/tlbabkRsCfHiWIvtjqKIyzqk+YjOc767pd0G
iWKxF98sI4fKdlZ+Aqw+9vO2KwQMYEtrIiCbPUYMff/BzxkrwUBnYcTjISPwEd3Z
JylfG78qsB8N6UOf89jRX2O7HCy6CGJvcuxbkwaCd5iqgLhBXj9bU7xgy/A2udav
JV/uV+vWDcy8cI22Xz1jfPpimAZjv+Qb3NjDX5nxjTciAEsNges0QdxZ71dfEqo+
DGSImtM8ORivPw7oXADztCC+11KcV4THa6wmu+Sblsxe46ldAwb6MLvMN04zALUN
mW4ojToqYgz9Jgc=
-----END CERTIFICATE-----
+8
View File
@@ -0,0 +1,8 @@
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEAwC8hQ6nZ2kNNmZAGGYN8++rUvNlDjKqdwWubUnqY08ng6FfGcouL
VSvgsF3LeERW/h4hrkgN983QjwrbBOrNp+7B59lhCs6Acvi87dXf3iaGNy4Gca43
ERVkAJ7IWdXydyb9COANRtmBb1JvvYMAeVeMdofk8EcOW/kUV2adAQKluAcVhgRQ
Pesp5i6Lv1kN5zVHDGkrJz5h0Mzi35aYia0gSnVCqEzmU7Omnz/gXY3Jdx91ym5Y
2dTZuUZgIhco2bfPbhDl/1g0a1PWz7rxw24KJloNZC3nEt3JqIto83GsgaUtYxFT
EWINSpghTjl4Z0CGCamJ6HXsNJGaVUXuGwIBAg==
-----END DH PARAMETERS-----
+19
View File
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDAzCCAbugAwIBAgIEU2eiHTANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDExhU
ZXN0IENBIENvbXBhbnkgLSBPc2l4aWEwHhcNMTQwNTA1MTQzNzE3WhcNMjQwNTAy
MTQzNzE3WjBAMR4wHAYDVQQKExVUZXN0IENvbXBhbnkgLSBPc2l4aWExHjAcBgNV
BAMTFWxkYXAtdGVzdC5leGFtcGxlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
gYkCgYEA0/9/VYQARBLg7TrEiO4DAjcBAt3u3IQNNo8YdsL9iGwmRTPOspxOBVuQ
2AVEIuT+4KLnm01q1NA+tEvXdfXI9eIN5zjCVTdt6VqwrF9E3zWxYEkuSJ4FWOhN
dc0837hWBg+mBl/d6fSTkmeRc9fpwwr1jK7t10/BIzMr/pCzf10CAwEAAaN2MHQw
DAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMD
B6AAMB0GA1UdDgQWBBThLwuObrBzlp4qsKs0NHFMrCgn8jAfBgNVHSMEGDAWgBSe
h3sVB9IMvJZV4FJNN0KuJCgQdjANBgkqhkiG9w0BAQsFAAOCATEAiAl9RGibKsfQ
5Vbz2ZjsykzYj9Dhkxp7fc7RdrK0SEHGXn8Qeg5jf+j9DtfhTrZPVF7Jn4WOvuqh
okQPrwRaDox6rtFPjsIR9JIO3/N2OvA3ozQyWqzB1ksU7CHJ5jGRskHBftSH2xwF
kdGvSMIAmr9VpZ/sp4ykmADWC/bfz8BXYJDOsCBzJMtss/12hBqiJQhSsuBAsOT7
40hG0t2S7mjGHWDF9PoARmNQ7X3Xc8j7V+dXLpNfZfc+htgI27WcOv7al4kxd//p
22a77U/q+9B1CV8T2q1UTRnQqPHxtgoRLd+5qzEtzBW37ecAs2eAs9Z7D3O/fScu
v0RxHSpnZDtL/JZcf3KO96l4sqCp6Ue5Ldg3tOvD4O46hjrlvUYnHcDdJjNYZ7rD
f5kGXs20Mg==
-----END CERTIFICATE-----
+15
View File
@@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQDT/39VhABEEuDtOsSI7gMCNwEC3e7chA02jxh2wv2IbCZFM86y
nE4FW5DYBUQi5P7gouebTWrU0D60S9d19cj14g3nOMJVN23pWrCsX0TfNbFgSS5I
ngVY6E11zTzfuFYGD6YGX93p9JOSZ5Fz1+nDCvWMru3XT8EjMyv+kLN/XQIDAQAB
AoGAHY7OgKxWYydkr/7VHyhcSAdGP1GVN667ruM1rH1UXxyBG331MEcFw853+/6D
+P+Hn+dmtmsNXZ2pWHcIk/xQZ+MEsAdm+OZ1qpBJjHA0izJ6sqZaNxSToKCR4SHM
/ACPAKqM9r2g1jqXzLKzgHBVc25Fonb1vUilTpC3YfaN+sECQQDmQGEcEK9Lvyi9
RV1fONDP3Z9cPRaSzpjUjlQAWNbhvcoUYV4AOy+tVClDErRIs/Oo+wCOL+bHlMom
zghcmxThAkEA67SPV0pNFR32gXvRZT4uKvCJcAjmNY4LMpet5DJ41Spq6+lbqXwY
1e87zEei1UvdmEXOjVsa1wXcg8Ks+/59/QJAHh+CFOfh5ykFLW3rv09xkiBOfwTG
9UHuILDWMI1u322zCGOMpr8Xh7ehBlNmHrTcRdlAw1lk+etvXxBJa8QmQQJABbNT
OCg63wTfflgxQ0KSuUUh/cypTKhHywxyDy/NTlJ9TYFSTzIKI7pqdtFQtdnk3Rbr
HO4UIxkoMSOXLW0FPQJARScXqZd7Lmwlw+ovAubfdOZdxjWGFZLRRZifiYZqtnQ1
aw8PjdkaIPxLjCwSOelV9SsMue6a7nvkxKEn6QbT0w==
-----END RSA PRIVATE KEY-----
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
. $dir/tools/run-tls.sh
echo "ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ"
ldapsearch -x -h $certCN -b dc=example,dc=com -ZZ
. $dir/tools/end-tls.sh
+3
View File
@@ -0,0 +1,3 @@
openldapTestImage=openldap-test
openldapTestContainer=openldap-test-container
openldapTestDir=/osixia-test-docker-openldap
+11
View File
@@ -0,0 +1,11 @@
#!/bin/sh
. $(dirname $0)/config.prop
# remove openldap test container
res=$(docker.io ps -a | grep -c "$openldapTestContainer")
if [ $res -ne 0 ]; then
docker.io stop $openldapTestContainer
docker.io rm $openldapTestContainer
fi
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
. $(dirname $0)/config.prop
# remove openldap test image
res=$(docker.io images | grep -c "$openldapTestImage")
if [ $res -ne 0 ]; then
docker.io rmi $openldapTestImage
fi
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
sed -i '/'"$addLine"'/d' /etc/hosts
cp /etc/ldap/ldap.conf.old /etc/ldap/ldap.conf
rm /etc/ldap/ldap.conf.old
$dir/tools/delete-container.sh
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
dir=$(dirname $0)
$dir/delete-container.sh
$dir/delete-image.sh
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
dir=$(dirname $0)
$dir/delete-container.sh
$dir/delete-image.sh
+14
View File
@@ -0,0 +1,14 @@
#!/bin/sh
echo "docker.io run --name $openldapTestContainer $runOptions -d $openldapTestImage"
ID=`docker.io run --name $openldapTestContainer $runOptions -d $openldapTestImage`
sleep 5
echo " --> Obtaining IP"
IP=`docker inspect $ID | grep IPAddress | sed -e 's/.*: "//; s/".*//'`
if [ "$IP" = "" ]; then
abort "Unable to obtain container IP"
exit 1
else
echo " -->" $IP
fi
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
runOptions="--dns=127.0.0.1 -v `pwd`/test/ssl:/etc/ldap/ssl"
. $dir/tools/run-simple.sh
cert=$(echo $dir/ssl/ldap.crt)
certCN=$(openssl x509 -in $cert -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
addLine=$(echo $IP $certCN)
echo $addLine >> /etc/hosts
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.old
sed -i 's,TLS_CACERT.*,TLS_CACERT '"$cert"',g' /etc/ldap/ldap.conf
sleep 5