Как зарегистрировать новый бесплатный реальный SSL-сертификат для домена?

Создаем закрытый ключ

— переходим в каталог /etc/ssl/private/
— создаем ключ:

openssl genrsa -des3 -out private.key 2048

— убираем пароль

cp private.key private.key.tmp
openssl rsa -in private.key.tmp -out private.key
rm private.key.tmp

Генерируем CSR-ключ

— переходим в каталог /etc/ssl/private/
— создаем ключ:

openssl req -new -key private.key -out domain-name.csr

при создании вводим необходимые параметры

— копируем полученный файл в /etc/ssl/<DOMAIN>/
где <DOMAIN> — адрес домена (либо его похожее название)

Создаем сертификат

— Заходим на https://startssl.com/.
— Авторизовываемся. Очень удобно использовать личный сертификат: импортируем в браузер, перезапускаем браузер, заходим на сайт, нажимаем логин, используем аутентификацию, открывается окно выбора сертификата — выбираем загруженный, соглашаемся. После этого должна произойти авторизация без пароля.
— Переходим в панель управления
— Вкладка Validation Wizard
— выбираем domain validation
— вводим адрес нужного домена
— continue
— выбираем почтовый адрес для подтверждения:
— кликаем на отправку кода
— заходим в ящик
— копируем из почтового письма код подтверждения на сайт
— нажимаем на кнопку проверки
— далее переходим в раздел order ssl sertificate
— вводим нужный домен
— в поле CSR вводим полученный текст ключа (вместе с ограничительными строчками — как есть, т.е. выделяем полностью все содержимое, копируем и вставляем)
— после вставки должно появиться справа: Algorithm :RSA, Key length :2048
— нажимаем submit (галочки не ставим)
— откроется страница с подтверждением созданного сертификата, нажимаем на нем на ссылку here и скачиваем архив с сертификатами для разных веб-серверов

Прописываем сертификат на веб-сервере (Apache)

— распаковываем полученный архив с сертификатом, выбираем наш веб-сервер (apache), загружаем 2 файла на сервер
— кладем в ту же папку, куда клали CSR (для удобства и феншуя)
— ставим права на файлы только для root:root
— переименовываем файл 2_ХХХХХХХХХ.crt в XXXXXXXXX.crt
— открываем конфиг нужного виртуального веб-сервера (https-сайта)
— добавляем:

        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL
        SSLCertificateFile /etc/ssl/DOMAIN/DOMAIN.ru.crt
        SSLCertificateKeyFile /etc/ssl/private/private.key
        SSLCertificateChainFile /etc/ssl/DOMAIN/1_root_bundle.crt

— сохраняем, перезагружаем апач

Прописываем сертификат на веб-сервере (Nginx)

— распаковываем полученный архив с сертификатом, выбираем наш веб-сервер (nginx)

-меняем права

chmod 600 /etc/ssl/private/private.key

— переименовываем файл 1_ХХХХХХХХХ.crt в XXXXXXXXX.crt
— кладем в ту же папку, куда клали CSR (для удобства и феншуя)
— добавляем конфиг ssl в настройку /sites-enabled/domain_name

ssl on;
ssl_certificate /etc/ssl/private/domain.ru_bundle.crt;
ssl_certificate_key /etc/ssl/private/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;

-перезагружаем nginx