Include acme-stuff and sshd_config-stuff
This commit is contained in:
parent
026f416f58
commit
35242e8a94
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Misc tools
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
- Clone to /opt/srcs/misctool
|
||||||
|
- Define global ENV $SYS_SRCS pointing to /opt/srcs, use this in wrappers
|
||||||
|
|
||||||
|
## Stuff in "snippet" dirs
|
||||||
|
|
||||||
|
Stuff could be included in existing configs
|
||||||
|
|
||||||
|
## Use of scripts:
|
||||||
|
Usually place a wrapper sourceing directly the contents of the file.
|
||||||
|
```
|
||||||
|
ACONF="Bla"
|
||||||
|
. /SYS_SRCS/misc-tools/acme/rec-cert.sh $@
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# For clouddns
|
||||||
|
# On new installs use
|
||||||
|
#export CLOUDNS_AUTH_ID=XXXXX
|
||||||
|
#export CLOUDNS_AUTH_PASSWORD="YYYYYYYYY"
|
||||||
|
# after first use these are saved withing acme.sh
|
||||||
|
|
||||||
|
mkdir -p /etc/ssl/mycerts/$1
|
||||||
|
|
||||||
|
./acme.sh --home "/opt/acme" --config-home '/var/lib/acme' --issue --dns dns_cloudns -d $1
|
||||||
|
|
||||||
|
|
||||||
|
cp /var/lib/acme/$1/*cer /etc/ssl/mycerts/$1
|
||||||
|
cp /var/lib/acme/$1/*key /etc/ssl/mycerts/$1
|
||||||
|
|
||||||
|
|
||||||
|
chmod go-rwx `find /etc/ssl/mycerts/$1 -name "key.pem"`
|
||||||
|
chmod go-rwx `find /etc/ssl/mycerts/$1 -name "*key"`
|
||||||
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
read -p "Server reload command on (default apache-reload): " rcmd
|
||||||
|
rcmd=${rcmd:-"/etc/init.d/apache2 reload"}
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p /etc/ssl/mycerts/$1
|
||||||
|
|
||||||
|
./acme.sh --force --home "/opt/acme" --config-home '/var/lib/acme' --issue --standalone --httpport 9432 -d $1 \
|
||||||
|
--ca-file /etc/ssl/mycerts/$1/ca.cer \
|
||||||
|
--cert-file /etc/ssl/mycerts/$1/$1.cer \
|
||||||
|
--key-file /etc/ssl/mycerts/$1/$1.key \
|
||||||
|
--fullchain-file /etc/ssl/mycerts/$1/fullchain.cer \
|
||||||
|
--reloadcmd "${rcmd}"
|
||||||
|
|
||||||
|
chmod go-rwx /etc/ssl/mycerts/$1/*.key
|
||||||
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
# Return 0 on cert-udpate, 1 on fail, on no changes
|
||||||
|
|
||||||
|
SRC=${SRC:-192.168.61.1}
|
||||||
|
SRC_USER=${SRC_USER:-cert_send}
|
||||||
|
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ "$1" == "" ]; then
|
||||||
|
echo "dir-name for target missing"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$2" == "" ]; then
|
||||||
|
echo "owning user missing"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=$(mktemp -d)
|
||||||
|
echo $TMP
|
||||||
|
cd $TMP
|
||||||
|
ssh $SRC_USER@$SRC 2> /dev/null > in.txt
|
||||||
|
cat in.txt | head -n 1
|
||||||
|
echo Got:
|
||||||
|
#cat in.txt | grep -B 99999 '\.\.\.\.\.' | grep -v '\.\.\.\.\.' | base64 -d > in.tgz
|
||||||
|
cat in.txt | tr -d '\r' | base64 -d > in.tgz
|
||||||
|
echo Install:
|
||||||
|
tar xzf in.tgz || exit 1
|
||||||
|
mkdir -p /etc/ssl/server/$1
|
||||||
|
chg=0
|
||||||
|
for i in $(ls *cer *key); do
|
||||||
|
echo "...$i"
|
||||||
|
diff "$i" "/etc/ssl/server/$1/$i" || chg=1
|
||||||
|
if [ "$chg" == "1" ]; then
|
||||||
|
cp "$i" "/etc/ssl/server/$1" || exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
chmod go-rwx /etc/ssl/server/${1}/*.key || exit 1
|
||||||
|
chown ${2} /etc/ssl/server/${1}
|
||||||
|
|
||||||
|
# return 0 if new cert was retrieved, 2 if no changes, 1 on error
|
||||||
|
if [ "$chg" == 0 ]; then
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Add to authorized_keys
|
# Add to authorized_keys
|
||||||
# command="/opt/acme/send-cert.sh gitea.mh3000.net 192.168.61.15" s
|
# command="/opt/acme/send-cert.sh test.mh3000.net 192.168.61.150" ssh-key
|
||||||
|
|
||||||
|
|
||||||
if [ "$(echo $SSH_CLIENT | cut -d ' ' -f 1)" != "$2" ]; then
|
if [ "$(echo $SSH_CLIENT | cut -d ' ' -f 1)" != "$2" ]; then
|
||||||
echo Invalid IP
|
echo Invalid IP
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
### acme.include
|
|
||||||
|
|
||||||
Include which redirects requests which are actually for the _ACME/Let's encrypt_ .
|
|
||||||
This way you can have apache running on port 80, but still process request from the _Let's encrypt_ service
|
|
||||||
which also come to port 80.
|
|
||||||
|
|
||||||
Example apache definition for a typical HTTP/80-virtual server would look like this now:
|
|
||||||
```
|
|
||||||
<VirtualHost cdn.mh3000.net:80>
|
|
||||||
Include /etc/apache2/vhosts.d/acme.include
|
|
||||||
RedirectMatch permanent ^(.*)$ https://cdn.mh3000.net/
|
|
||||||
TransferLog "/var/log/apache2/access_cdnmh3000-nonssl.log"
|
|
||||||
</VirtualHost>
|
|
||||||
```
|
|
||||||
|
|
||||||
This works like this:
|
|
||||||
- the include redirects request to the /.well-known/acme-challenge path to localhost:9432 where your
|
|
||||||
ACME-worker shoud listen for requests
|
|
||||||
- All other requests will be redirect to the SSL-version of your site.
|
|
||||||
|
|
||||||
E.g. with `acme.sh` you must specify then parameters `[OTHER STUFF] --issue --standalone --httpport 9432 -d [DOMAIN]`
|
|
||||||
at initial certificate request. Renews will automatically the also use the alternate httpport.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
ProxyPass "/.well-known/acme-challenge" "http://127.0.0.1:9432/.well-known/acme-challenge" timeout=10 retry=3
|
|
||||||
ProxyPassReverse "/.well-known/acme-challenge" "http://127.0.0.1:9432/.well-known/acme-challenge"
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export SYS_SRCS=/opt/srcs
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
|
||||||
|
# For local SSH forwarding
|
||||||
|
PermitRootLogin false
|
||||||
|
Matcm LocalAddress 127.0.0.1,::1
|
||||||
|
PermitRootLogin prohibit-password
|
||||||
|
|
||||||
|
# Sample for SFTP-Only users
|
||||||
|
# Every dir include /root must be owned by root with o=rx or o=r
|
||||||
|
#
|
||||||
|
# Example tree
|
||||||
|
# /srv/someuser/root/data # owned by someuser
|
||||||
|
# /srv/soomeuser/root # owned by root
|
||||||
|
# /srv/someuser/.ssh # owned by somueuser
|
||||||
|
# /srv/someuser # owned by root
|
||||||
|
#
|
||||||
|
Match User bu_*
|
||||||
|
X11Forwarding no
|
||||||
|
AllowTcpForwarding no
|
||||||
|
ForceCommand internal-sftp -l info -u 022
|
||||||
|
ChrootDirectory %h/root
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue