Перейти до змісту

https - генерація ключів RSA

Цей скрипт використовувався мною багато разів. Незалежно від того, як часто ви використовуєте командну структуру openssl, інколи вам доводиться повертатися до процедури. Цей сценарій дозволяє автоматизувати генерацію ключів для веб-сайту за допомогою RSA. Зауважте, що цей сценарій жорстко закодований із довжиною ключа 2048 біт. Для тих із вас, хто переконаний, що мінімальна довжина ключа має становити 4096 біт, просто змініть цю частину сценарію. Просто знайте, що вам потрібно зважити пам’ять і швидкість, які веб-сайту потрібно завантажити на пристрій, проти безпеки більшої довжини ключа.

Сценарій

Назвіть цей сценарій як завгодно, наприклад: keygen.sh, зробіть сценарій виконуваним (chmod +x scriptname) і розмістіть його в каталозі, який знаходиться на вашому шляху, наприклад: /usr/local/sbin

#!/bin/bash
if [ $1 ]
then
      echo "generating 2048 bit key - you'll need to enter a pass phrase and verify it"
      openssl genrsa -des3 -out $1.key.pass 2048
      echo "now we will create a pass-phrase less key for actual use, but you will need to enter your pass phrase a third time"
      openssl rsa -in $1.key.pass -out $1.key
      echo "next, we will generate the csr"
      openssl req -new -key $1.key -out $1.csr
      #cleanup
      rm -f $1.key.pass
else
      echo "requires keyname parameter"
      exit
fi

Примітка

Ви введете парольну фразу тричі поспіль.

Короткий опис

  • Цей сценарій bash потребує введення параметра ($1), який є назвою сайту без www тощо. Наприклад, «mywidget».
  • Сценарій створює ключ за замовчуванням із паролем і довжиною 2048 біт (це можна редагувати, як зазначено вище, до довшої довжини 4096 біт)
  • Тоді пароль негайно видаляється з ключа. Причина полягає в тому, що перезавантаження веб-сервера потребуватиме введення пароля ключа кожного разу та під час перезавантаження, що може бути проблематичним на практиці.
  • Далі сценарій створює CSR (запит на підписання сертифіката), який потім можна використовувати для придбання сертифіката SSL у постачальника.
  • Нарешті, крок очищення видаляє раніше створений ключ із доданим паролем.
  • Введення назви сценарію без параметра генерує помилку: «потрібен параметр імені ключа».
  • Тут використовується змінна позиційного параметра, тобто $n. Де $0 представляє саму команду, а $1–$9 представляють параметри з першого по дев’ятий. Якщо число більше 10, потрібно використовувати дужки, наприклад ${10}.

Author: Steven Spencer