Краткая инструкция, как перевести дешево и сердито на HTTPS сайты:
1. идем в консоль линукса, на пример в убунту:
apt-get update;apt-get install software-properties-common -y
затем
echo|add-apt-repository ppa:certbot/certbot;apt-get update;apt-get install python-certbot-nginx -y;apt-get autoremove
если все ок, certbot установился.
Эта приблуда генерит SSL от Letsencrypt.org. Сертификат бесплатный, браузеры его понимают (корневой сертификат установлен почти везде, так что ок)
2. Теперь нужно сгенерить сертификаты.
Сертификат тип SNI - то есть один сертификат на N доменов.
Но не нужно пихать в один сертификат все свои домены. Любой, кто захочет, сможет проверить SSL чекером сертификат любого домена и получит в списке все ваши домены, на которых действует сертификат.
Лучше так: если сайтов сидит много, то генерить бандлами типа
www.site.com , site.com - то есть делать SNI на два сайта: www. и без www
3. Первый запуск цертбота
При первом запуске нужно согласится с TOS и указать емейл.
Емейл указывается один раз на весь сервер. Я использую специальные "мусорные" емейлы, которые выглядят как нормальные. В данном случае на указанный емейл приедет конфирм регистрации, а потом чуть позже первый спам от EFF - это нестрашно вовсе.
итак, в консоли:
certbot --nginx -d
www.site.com,site.com
где
--nginx - это юзать нгинкс
--apache - соотвествено апач
внимание: синтаксис конфигов должен быть валидным перед запуском, иначе облом. То есть должны быть либо две секции
server { } с server_name
www.site.com и server_name site.com
или server_name
www.site.com site.com;
значит далее: указать емейл, согласится, затем нажать Y
два сертификата будут выписаны и прописаны автоматом в конфиг. в завершении будет выбор:
оставить сайт доступным по http/https или только по https
естественно п.2
В принципе на этом все.
Но я обычно привожу конфиги в нормальный вид, типа:
server {
listen 1.1.1.1:80;
listen 1.1.1.1:443;
server_name
www.site.com;
ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
return 301 https://site.com$request_uri;
}
server {
listen 1.1.1.1:80;
listen 1.1.1.1:443;
server_name site.com;
ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
.....
все следующие запуски бота:
certbot --nginx -d
www.site.com,site.com -n