mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
64 lines
2 KiB
Text
64 lines
2 KiB
Text
set -e
|
|
|
|
force=$1
|
|
|
|
function safe_copy () {
|
|
if [ ! -f /etc/yunohost/installed ]; then
|
|
sudo cp $1 $2
|
|
else
|
|
if [ $force ]; then
|
|
sudo yunohost service safecopy \
|
|
-s ssl $1 $2 --force
|
|
else
|
|
sudo yunohost service safecopy \
|
|
-s ssl $1 $2
|
|
fi
|
|
fi
|
|
}
|
|
|
|
cd /usr/share/yunohost/templates/ssl
|
|
ssl_dir=/usr/share/yunohost/yunohost-config/ssl/yunoCA
|
|
|
|
sudo mkdir -p /etc/yunohost/certs/yunohost.org
|
|
sudo mkdir -p $ssl_dir/{ca,certs,crl,newcerts}
|
|
|
|
safe_copy openssl.cnf $ssl_dir/openssl.cnf
|
|
|
|
[ -f $ssl_dir/serial ] \
|
|
|| (echo "00" | sudo tee $ssl_dir/serial)
|
|
|
|
[ -f $ssl_dir/index.txt ] \
|
|
|| sudo touch $ssl_dir/index.txt
|
|
|
|
if [ ! -f /etc/yunohost/certs/yunohost.org/ca.pem ]; then
|
|
sudo openssl req -x509 -new -config $ssl_dir/openssl.cnf \
|
|
-days 3650 -out $ssl_dir/ca/cacert.pem \
|
|
-keyout $ssl_dir/ca/cakey.pem -nodes -batch
|
|
sudo cp $ssl_dir/ca/cacert.pem \
|
|
/etc/yunohost/certs/yunohost.org/ca.pem
|
|
sudo ln -sf /etc/yunohost/certs/yunohost.org/ca.pem \
|
|
/etc/ssl/certs/ca-yunohost_crt.pem
|
|
sudo update-ca-certificates
|
|
fi
|
|
|
|
if [ ! -f /etc/yunohost/certs/yunohost.org/crt.pem ]; then
|
|
sudo openssl req -new -config $ssl_dir/openssl.cnf \
|
|
-days 730 -out $ssl_dir/certs/yunohost_csr.pem \
|
|
-keyout $ssl_dir/certs/yunohost_key.pem -nodes -batch
|
|
sudo openssl ca -config $ssl_dir/openssl.cnf \
|
|
-days 730 -in $ssl_dir/certs/yunohost_csr.pem \
|
|
-out $ssl_dir/certs/yunohost_crt.pem -batch
|
|
|
|
last_cert=$(ls $ssl_dir/newcerts/*.pem | sort -V | tail -n 1)
|
|
sudo chmod 640 $ssl_dir/certs/yunohost_key.pem
|
|
sudo chmod 640 $last_cert
|
|
|
|
sudo cp $ssl_dir/certs/yunohost_key.pem \
|
|
/etc/yunohost/certs/yunohost.org/key.pem
|
|
sudo cp $last_cert \
|
|
/etc/yunohost/certs/yunohost.org/crt.pem
|
|
sudo ln -sf /etc/yunohost/certs/yunohost.org/crt.pem \
|
|
/etc/ssl/certs/yunohost_crt.pem
|
|
sudo ln -sf /etc/yunohost/certs/yunohost.org/key.pem \
|
|
/etc/ssl/private/yunohost_key.pem
|
|
fi
|