Чи можна відновити самопідписаний сертифікат SSL? Як?


18

Я досить новачок у сертифікатах SSL і хотів би знати, чи можна підписати самопідписаний сертифікат, який я використовую для HTTPS, щоб продовжити його термін дії, без того, щоб усі клієнти сайту пройшли процедуру "дозволити виключення", яку вони мають робити, коли вони відвідують цей сайт вперше або, як при видачі нового самопідписаного сертифіката, створеного з нуля.

Я знайшов наступний підручник, який показує, як відновити самопідписаний сертифікат за допомогою, opensslале я не зміг його використовувати так, що мій браузер мовчки приймає його, не показуючи екран попередження "Ненадійний сайт":

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    Kayon.Toga@togaware.com
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

Моя настройка приблизно така, як описано в цій відповіді, і я використовую файли CRT та KEY (з цього підручника ) замість файлу PEM, тому, можливо, я щось зіпсував, намагаючись застосувати це до мого випадку.

Знову ж таки, я знайшов багато записів на форумі, що дозволяють відновити підписаний сертифікат цілком неможливо, і мені доведеться створити нову з нуля.

Будь-яка допомога буде вдячна ... чи краще це питання відповідатиме /server// або /superuser// ?


7
Замість того, щоб скасовувати це питання, будь ласка, дайте конкретні поради, що слід покращити.
FriendFX

Відповіді:


23

За визначенням, самовільному сертифікату можна довіряти лише шляхом прямого довіри , тобто того, що веб-браузери, такі як Firefox, показують як "дозволяють виняток". Один дуже специфічний сертифікат, аж до останнього біта, оголошується "довіреним". Ніщо не може бути змінено в сертифікаті, не виходячи з цієї моделі, і, зокрема, дата закінчення терміну придатності, яка є частиною даних, що містяться в сертифікаті.

Ви можете уявити оновлення як якусь сімейну річ: коли посвідчення "поновлюється", його фактично замінюють молодший брат. Клієнти приймають новий сертифікат мовчки, оскільки він має той самий родовід, що і попередній сертифікат. Сертифікати, що підписуються самотужки, є внутрішніми сиротами: вони не мають свого роду. Отже, ні брати, ні автоматична коробка передач.

(Окрім цієї речі про походження, поновлення - це створення нового сертифіката. Сертифікати є незмінними . "Поновлення" - це спосіб думати про взаємозв'язок старого та нового сертифікатів.)

Якщо ви хочете бути в змозі зробити безшумні продовжень, то вам необхідно самостійно підписаний CA сертифікат . Ви видаєте сертифікати для своїх серверів (ів) від цього ЦА та просите своїх клієнтів довіряти цьому КА. Звичайно, про це багато запитують: CA, якому ви довіряєте, це CA, який може підробити весь Інтернет в ваших очах. В основному, це рішення полягає у створенні та підтримці власного КА, що є обов'язком та певною роботою.


Наступного разу, коли ви видасте самопідписаний сертифікат, зробіть його довговічним. Термін дії сертифікатів закінчується здебільшого для того, щоб змусити скасувати роботу (термін дії сертифіката заважає CRL нескінченно рости). Для самопідписаного сертифіката відкликання не існує, тому ви можете зробити сертифікат дійсним протягом 20 років. Або протягом 2000 років з цього питання (хоча проблема 2038 року може з’явитися в якийсь момент, залежно від клієнтського програмного забезпечення).


Дякую за обширну відповідь! Мені цікаво, хоча що це означає стосовно підручника, з яким я пов’язаний. Це лише для самопідписаних сертифікатів ЦС ? Я думаю, що я просто сподівався (і думав, прочитавши навчальний посібник), є спосіб прочитати в приватному ключі зі старого і створити новий, "сумісний" ... той, що більше схожий на "дитину", а не на "сирота". Приємна аналогія, до речі!
FriendFX

@FriendFX - Те, що ти хочеш, неможливо. Том правильний, ренвеал створює новий сертифікат.
Рамхаунд

@Ramhound - я розумію. Єдине відкрите питання: яка мета цього підручника тоді?
FriendFX

@FriendFX - Це написав якийсь випадковий хлопець в Інтернеті лише тому, що у них є блог, це не означає, що вони розуміють, про що пишуть. Автор просто не пояснює, що підручник призведе до нового сертифіката
Ramhound

3
@FriendFX Так, цей підручник буде працювати лише для самопідписаних сертифікатів CA. Якщо ви використовуєте одну і ту ж пару ключів і тему, ви можете створити кілька сертифікатів CA, які задовольнять як дійсний емітент виданих сертифікатів; ці сертифікати можуть навіть видаватися різними батьківськими ЦА, що називається "перехресне ланцюг".
Калріон

3

Коротка відповідь: Ні.

Довіряти самопідписаному сертифікату - це як довірити окремий паспорт, а не країну, яка видає цей паспорт. Якщо ви отримаєте новий паспорт, він не буде автоматично довіряти тому, хто довірив старий, зокрема тому, що це різна річ з різними атрибутами (номер паспорта, дати тощо); немає підстав для того, щоб хтось явно довіряв старому паспорту, щоб знати, якому нового можна довіряти.


0

Якщо ви використовуєте самопідписані сертифікати (я рекомендую використовувати xca на windows), ви можете просто встановити термін придатності до 7999-12-31 (максимальний час для UTC), а початкова дата - 1970-01-01 (для сумісність із неправильно налаштованим часом / датою на ПК)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.