Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- error() {
- echo 'ERROR detected! Exiting...'
- exit 1
- }
- #################################################
- DOMAIN='domain.com'
- EMAIL='admin@domain.com'
- ORGANISATION='Organisation'
- CITY='you city'
- RSA_BIT=2048
- DAYS=99365
- #################################################
- # Генерируем пароль для ключей.
- PASS=$(tr -cd A-Za-z < /dev/urandom | head -c8)
- echo 'Generated Password: '${PASS}
- # Проверим, если не существует каталог для домена, то создаем его.
- [ ! -d ${DOMAIN} ] && mkdir ${DOMAIN} && echo 'Create directory: '${DOMAIN}
- #http://linuxcmd.ru/openssl-genrsa-sozdanie-fayla-klyuchey
- echo "Now create the server private key, you'll be asked for a passphrase:"
- openssl genrsa -des3 -out ${DOMAIN}/${DOMAIN}.key -passout pass:${PASS} ${RSA_BIT}
- [ $? -eq 1 ] && error
- #http://linuxcmd.ru/openssl-req-sozdanie-csr-zaprosa
- #В пункте Common Name (eg, YOUR name) []: надо указать именно имя домена (без http, https, /): имя.домена
- echo 'Create the Certificate Signing Request (CSR):'
- openssl req -out ${DOMAIN}/${DOMAIN}.csr -new -newkey rsa:${RSA_BIT} \
- -subj /C=RU/ST=${CITY}/L=${CITY}/O=${ORGANISATION}/OU=${ORGANISATION}/CN=*.${DOMAIN}/emailAddress=${EMAIL} \
- -nodes -keyout ${DOMAIN}/${DOMAIN}.key -passout pass:${PASS}
- [ $? -eq 1 ] && error
- # Starting up nginx with SSL using the above private key:
- echo 'Remove the necessity of entering a passphrase for:'
- cp ${DOMAIN}/${DOMAIN}.key ${DOMAIN}/${DOMAIN}.key.org
- openssl rsa -in ${DOMAIN}/${DOMAIN}.key.org -out ${DOMAIN}/${DOMAIN}.key
- [ $? -eq 1 ] && error
- echo 'Finally sign the certificate using the above private key and CSR:'
- openssl x509 -req -days ${DAYS} -in ${DOMAIN}/${DOMAIN}.csr -signkey ${DOMAIN}/${DOMAIN}.key -out ${DOMAIN}/${DOMAIN}.crt
- [ $? -eq 1 ] && error
- #http://wiki.nginx.org/HttpSslModule
- cat <<_EOF
- Update Nginx configuration by including the newly signed certificate and private key:
- server {
- server_name YOUR_DOMAINNAME_HERE;
- listen 443;
- ssl on;
- ssl_certificate /usr/local/nginx/conf/server.crt;
- ssl_certificate_key /usr/local/nginx/conf/server.key;
- }
- _EOF
- #Убедиться в том, что сервер присылает полную цепочку сертификатов,
- #можно при помощи утилиты командной строки openssl, например:
- #openssl s_client -connect www.godaddy.com:443
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement