самоподписанный ssl сертификат

Thank you for reading this post, don't forget to subscribe!

yum install openssl

После уста­нов­ки OpenSSL, созда­ём пап­ки, в кото­рых будут лежать наши сер­ти­фи­ка­ты и клю­чи, напри­мер так:

При­сту­па­ем к созда­нию само­под­пи­сан­но­го ssl сер­ти­фи­ка­та. Выпол­ня­ем команду:

Опи­са­ние параметров:

  • req – это гене­ра­ция запро­сов на под­пись сер­ти­фи­ка­та, но если мы зада­ём ключ “-x509”, это озна­ча­ет, что мы гене­ри­ру­ем само­под­пи­сан­ный сертификат.
  • -newkey rsa:2048 –  если у нас ещё нет клю­ча, мы добав­ля­ем дан­ный пара­метр, что бы ключ был создан авто­ма­ти­че­ски. Ука­зы­ва­ем пара­мет­ры ключа.
  • -days 365 – ука­зы­ва­ем коли­че­ство дней,  в тече­нии кото­рых будет дей­ство­вать дан­ный сертификат.
  • -keyout  /home/devuser/cert/mykey.key – пара­метр нужен, так как мы ука­за­ли newkey и гене­ри­ру­ем новый ключ. Ука­зы­ва­ем в какой фал поло­жим ключ.
  • -out /home/devuser/cert/cert.crt – сюда поло­жим наш сертификат.

Даль­ше нас попро­сят вве­сти пароль к клю­чу. Вво­дим пароль, не мень­ше 4 сим­во­лов, и повто­ря­ем ввод паро­ля. Затем нас попро­сят вве­сти дан­ные о сер­ти­фи­ка­те (инфор­ма­цию о сер­вер­ной сто­роне). Если какие-то дан­ные Вам не нуж­ны може­те про­сто ста­вить точку (“.”).

Давай­те рас­смот­рим по поряд­ку, что нам пред­ла­га­ют ввести:

  • Country Name (2 letter code) [AU]: 77 – страна/регион
  • State or Province Name (full name) [Some-State]:. – штат (у нас их нет, поэто­му пропускаем)
  • Locality Name (eg, city) []:Moscow – город
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:DOMru – имя организации
  • Organizational Unit Name (eg, section) []:. – под­раз­де­ле­ние орга­ни­за­ции, пропускаем.
  • Common Name (e.g. server FQDN or YOUR name) []:test.ru – Обя­за­тель­ное поле, это имя по кото­ро­му к сер­ве­ру будут обращаться.
  • Email Address []:admin@test.ru – адрес элек­трон­ной почты, тоже мож­но пропустить.

В ито­ге мы полу­чи­ли два фай­ла, ключ и сер­ти­фи­кат. Ключ-это сек­рет­ный ключ, пуб­лич­ный ключ нахо­дить­ся в теле само­го сертификата.

Убираем пароль с секретного ключа.

Ещё мож­но немно­го моди­фи­ци­ро­вать коман­ду, напри­мер убрать пароль с сек­рет­но­го клю­ча, это в боль­шин­стве слу­ча­ев не удоб­но, если сер­вис стар­ту­ет в авто­ма­ти­че­ском режи­ме, в тот момент когда ему необ­хо­ди­мо будет полу­чить доступ к сек­рет­но­му клю­чу, нуж­но будет вруч­ную вве­сти пароль.

Добав­ля­ем пара­метр “-nodes”, в резуль­та­те сек­рет­ный ключ не будет зашиф­ро­ван паролем.

 

Так же мож­но ещё доба­вить пара­метр “-subj” – этот тот кому при­над­ле­жит сер­ти­фи­кат, то что мы вво­ди­ли в интер­ак­тив­ном режи­ме (назва­ние орга­ни­за­ции, мыло и так далее). Мож­но эти пара­мет­ры сра­зу ука­зать в скрип­те. Напри­мер так:

В при­ме­ре выше про­пус­ка­ем все поля, кро­ме CN (Common Name).

 

Для про­смот­ра сер­ти­фи­ка­та мож­но вос­поль­зо­вать­ся этой командой:

  • -noout – выво­дим дан­ные не в файл а в консоль.
  • -text – выво­дим дан­ные в тек­сто­вом виде.
  • -in /home/devuser/cert/cert.crt – отку­да берём сертификат