Advertisement
METAJIJI

Untitled

Jun 9th, 2015
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. error() {
  4. echo 'ERROR detected! Exiting...'
  5. exit 1
  6. }
  7.  
  8. #################################################
  9. DOMAIN='domain.com'
  10. EMAIL='admin@domain.com'
  11. ORGANISATION='Organisation'
  12. CITY='you city'
  13. RSA_BIT=2048
  14. DAYS=99365
  15. #################################################
  16.  
  17. # Генерируем пароль для ключей.
  18. PASS=$(tr -cd A-Za-z < /dev/urandom | head -c8)
  19. echo 'Generated Password: '${PASS}
  20.  
  21. # Проверим, если не существует каталог для домена, то создаем его.
  22. [ ! -d ${DOMAIN} ] && mkdir ${DOMAIN} && echo 'Create directory: '${DOMAIN}
  23.  
  24. #http://linuxcmd.ru/openssl-genrsa-sozdanie-fayla-klyuchey
  25. echo "Now create the server private key, you'll be asked for a passphrase:"
  26. openssl genrsa -des3 -out ${DOMAIN}/${DOMAIN}.key -passout pass:${PASS} ${RSA_BIT}
  27. [ $? -eq 1 ] && error
  28.  
  29. #http://linuxcmd.ru/openssl-req-sozdanie-csr-zaprosa
  30. #В пункте Common Name (eg, YOUR name) []: надо указать именно имя домена (без http, https, /): имя.домена
  31. echo 'Create the Certificate Signing Request (CSR):'
  32. openssl req -out ${DOMAIN}/${DOMAIN}.csr -new -newkey rsa:${RSA_BIT} \
  33. -subj /C=RU/ST=${CITY}/L=${CITY}/O=${ORGANISATION}/OU=${ORGANISATION}/CN=*.${DOMAIN}/emailAddress=${EMAIL} \
  34. -nodes -keyout ${DOMAIN}/${DOMAIN}.key -passout pass:${PASS}
  35. [ $? -eq 1 ] && error
  36.  
  37. # Starting up nginx with SSL using the above private key:
  38. echo 'Remove the necessity of entering a passphrase for:'
  39. cp ${DOMAIN}/${DOMAIN}.key ${DOMAIN}/${DOMAIN}.key.org
  40. openssl rsa -in ${DOMAIN}/${DOMAIN}.key.org -out ${DOMAIN}/${DOMAIN}.key
  41. [ $? -eq 1 ] && error
  42.  
  43. echo 'Finally sign the certificate using the above private key and CSR:'
  44. openssl x509 -req -days ${DAYS} -in ${DOMAIN}/${DOMAIN}.csr -signkey ${DOMAIN}/${DOMAIN}.key -out ${DOMAIN}/${DOMAIN}.crt
  45. [ $? -eq 1 ] && error
  46.  
  47.  
  48. #http://wiki.nginx.org/HttpSslModule
  49. cat <<_EOF
  50. Update Nginx configuration by including the newly signed certificate and private key:
  51. server {
  52. server_name YOUR_DOMAINNAME_HERE;
  53. listen 443;
  54. ssl on;
  55. ssl_certificate /usr/local/nginx/conf/server.crt;
  56. ssl_certificate_key /usr/local/nginx/conf/server.key;
  57. }
  58. _EOF
  59.  
  60. #Убедиться в том, что сервер присылает полную цепочку сертификатов,
  61. #можно при помощи утилиты командной строки openssl, например:
  62. #openssl s_client -connect www.godaddy.com:443
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement