letsencrypt-nginxssl

Большая часть мануала стырена отсюда: https://hellsman.ru/admin/linux/ustanovka-ssl-sertifikata-ot-letsencrypt-s-nginx-v-centos-7

Но у меня на одном сервере крутятся много доменов и поэтому мы его немного модифицируем, чтобы каждому серверу соответствовал свой сертификат.

Приступим.

Все действия должны выполняться на сервере, где располагается сайт. Т.е. по команде nslookup domain.com должен возвращаться именно IP-адрес вашего сервера, на котором будут выполняться дальнейшие действия. Это очень важно!

Первое что нужно сделать — получить сам клиент для связи с удостоверяющим сервером Let’s Encrypt.

cd /usr/src

git clone https://github.com/letsencrypt/letsencrypt && cd letsencrypt

Для корректной работы нам нужно отключить nginx. Собственно это самый неприятный момент, пока мы будем получать сертификат, сайт будет недоступен. Но благо это занимает буквально 1-2 минуты.

service nginx stop

Получаем сертификат:

./letsencrypt-auto certonly -d domain.com -d www.domain.com –server https://acme-v01.api.letsencrypt.org/directory

Далее скрипт произведет установку всех необходимых библиотек, затем предложит согласиться с правилами использования и последним этапом будет запрос на ввод адреса эл.почты.

После генерации будет выведено сообщение об успешном получении SSL-сертификата.

Данную команду надо выполнить для каждого домена. Так как wildcard пока нельзя, то перечисляем все домены (включая третий и глубже уровни) по порядку.

Сертификаты находятся в папке /etc/letsencrypt/live/domain.com/

Проверяем что сертификат был сформирован правильно:

openssl x509 -noout -text –in /etc/letsencrypt/live/domain.com/cert.pem / grep DNS

На выходе мы получаем перечень DNS-имен на которые выписан сертификат.

  1. DNS:domain.com
  2. DNS:www.domain.com

Ну и проверяем корректность того, что правильно прописан центр сертификации:

openssl x509 -noout -text –in /etc/letsencrypt/live/stat.hellsman.ru/cert.pem | grep Issuer

Вы должны получить следующие строки:

  1. Issuer: C=US, O=Let‘s Encrypt, CN=Let’s Encrypt Authority X1
  2. CA Issuers – URI:http://cert.int-x1.letsencrypt.org/

Обратите внимание, что сертификат выдается на 90 (!!!) дней. Через 90 дней нужно будет перевыпустить SSL-сертификат, выполнив тот же запрос с помощью клиента Let’s Encrypt.

Теперь дело остается за малым, настраиваем Nginx:

nano /etc/nginx/conf.d/ssl.conf

и вставляем туда следующее:

 

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS +RC4 RC4";

ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security “max-age=31536000;”;
resolver 8.8.8.8 8.8.4.4 valid=300s;
ssl_stapling on;
ssl_stapling_verify on;
resolver_timeout 10s;
spdy_keepalive_timeout 300;
spdy_headers_comp 9;

Теперь в web-site.conf пишем остатки:

server {
 listen 80;
 server_name domain.com www.domain.com;

 #always redirect HTTP to HTTPS
 return 301 https://$host$request_uri;
}
server {
    listen 443 default_server ssl;
 server_name domain.com www.domain.com;
#SSL
 ssl on;
 ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
 ssl_dhparam /etc/letsencrypt/live/domain.com/dhparam.pem;
}

Последней строкой в конфигурации прописан параметр ssl_dhparam. Данная настройка позволяет указать файл параметров для протокола обмена ключами Диффи — Хеллмана. В данном файле мы обязываем клиентов использовать криптоустойчивые ключи длиной 4096 байт и запрещаем понижать длину ключа. Но по умолчанию данный файл не генерируется, его нужно создать. Делается это следующей командой

openssl dhparam -out /etc/letsencrypt/live/domain.com/dhparam.pem 4096

С настройкой Nginx покончено, теперь нужно разрешить внешние подключения к порту 443, который используется nginx для HTTPS-соединений.

firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Собственно на этом настройка закончена. Проверяем правильность файла конфигурации и запускаем Nginx

nginx -t

service nginx start

Проверяем что сайт доступен и перенаправляет всех посетителей с HTTP на HTTPS: http://domain.com -> https://domain.com

На этом собственно настройка nginx закончена, а теперь настала пора автоматизации получения ключей каждые два месяца, соответственно рекомендации LetsEncrypt

во-первых, создаём в какой-то более-менее защищённой папке скрипт renew.sh

cd /usr/src/letsencrypt
service nginx stop
./letsencrypt-auto –renew certonly -d domain.com -d www.domain.com –server https://acme-v01.api.letsencrypt.org/directory
service nginx start

затем chmod +x renew.sh его.

По умолчанию, редактором кронтаб является vi, который я терпеть ненавижу. Поэтому, для тех, кто со мной солидарен, есть волшебная команда export EDITOR=nano, где nano — ваш предпочитаемый редактор.

Затем, редактируем crontab — crontab -e — и вставляем туда строку:

0 0 1 */2 * /path_to_script/renew.sh > /var/log/letsencryptrenew.log

Перезапускаем крон

service crond restart

Данная настройка будет запускать скрипт по первым числам каждого нечётного месяца и складывать вывод в файл с логом.

 

Наступила зима, если вдруг кто не заметил, а это означает, что через час использования телефона на улице он превращается в тыкву. Для предотвращения оного события издревле используются внешние аккумуляторы, ака PowerBank, ака «банки».

Но с нынешним курсом доллара купить хорошую банку стало несколько накладно, ибо только один хороший аккумулятор типа 18650 стоит 8 долларов. А для действительно ёмкой банки их надо 6. Плюс кейс — ещё прибавить долларов 8-12. Итого 60 долларов.

Да, есть китайские магазины, которые торгуют типа оригинальными Xiaomi долларов за 25. Но вся проблема в том что они именно что «типа оригинальные», а что на самом деле приедет — не известно никому.

2015-11-25 20-26-23 Оригинал Xiaomi зарядное устройство 16000 мАч двойной USB Xiaomi портативное зарядное устройство двойноГлавная задача дешёвых китайских банок заключается в том чтобы показать охрененные цифры, а засада в том что они набиты отвратительного качества аккумуляторами.

Lithium-Ion батареи, как ни странно, весьма и весьма высокотехнологичны. А поэтому требуют совершенно определённых условий производства и ещё более строгого соблюдения состава электролита и компонент для сборки. Поэтому, здесь точно так же, как в любом общепите: «Быстро, вкусно, недорого — выбирайте любые два». По отношению к батареям это можно перефразировать как «Ёмко, надёжно, недорого». Китайские банки в 99% случаев идут как «ёмко+недорого», поэтому они и мрут через пару десятков циклов заряда.

Классический образец китайского говна

Классический образец китайского говна с одним реальным 1А USB-портом, распараллеленным на два разъёма. А на жопе надпись про 30000mAh

Что же делать обычному человеку, чтобы не оказаться гордым владельцем зарядного устройства, которое через месяц можно будет выкинуть в помойку?

Вариантов два: купить банку у проверенного продавца за адекватные деньги, либо собрать банку самому из заведомо хороших компонентов, благо, DIY-наборы продаются во многих местах.

Я пошёл по второму пути.

После долгих поисков и нескольких купленных некачественных корпусов был найден подходящий по всем параметрам корпус для банки с приличной электронной начинкой, которая действительно даёт заявленные характеристики. В подобные корпуса ещё очень любят паковаться некоторые отечественные производители банок.

Эта коробка была выбрана в итоге. Идеально подошла

Эта коробка была выбрана в итоге. Идеально подошла

IMG_20150927_113842

Это электроника в банке

Осталось придумать, чем же её набить. Абсолютным чемпионом по соотношению цена-качество на рынке «пальцев» типа 18650 являются батареи Panasonic NCR18650B. Аккумулятор на 2600mAh отличного качества. Тем, кто сейчас собирается сказать мне, что есть классные аккумуляторы большей ёмкости и дешевле я снова напомню — «выбирайте любые два».

После поиска в сети данных аккумуляторов я загрустил, потому что жаба моя спит чутко и мгновенно просыпается от ощущения необоснованных трат. Поэтому поиски продолжились и, внезапно, они завершились обнаружением вот такой штуки:

Это батарея от Macbook Air

Это батарея от Macbook Air

Да, это ноутбучная батарея от MacbookAir. Если аккуратно выковырять из неё батарейные блоки, то пять штук, уложенные в стопку идеально ложатся в коробку. А уж в качестве батарей от Apple сомневаться не приходится. И, главное, у меня обнаружился доступ к таким сравнительно дешёвым батареям!

Вот так они идеально влезли

Итого, в банке 5 батарей по 14Wh каждая. Это больше, чем можно набить «пальцами», потому что нет зазоров между цилиндрами.

Перед сборкой

Перед сборкой

В результате тестирования был получен практически максимально-достижимый для данного объёма результат: почти 17000mAh.

IMG_20150922_150843

В общем, банкой я более чем доволен.

За время использования были получены следующие впечатляющие результаты:

  • Больше недели автономки с телефоном LG G3 в глухих лесах
  • Ночь брожения по Москве, нон-стоп играя в Ingress (несколько раз)
  • Много-много удивлённых быстрой зарядкой людей

Котик тем, кто дочитал до конца.

20151105_150443

 

 

Правильный хостинг своими руками.

Для следующей статьи нам понадобится связка NGINX + PHP5-FPM. Установим и настроим.

nginx[1]

Начнем с python-software-properties для удобного добавления репозиториев. Выполним в консоли сервера команды:

 

Теперь добавим репозиторий NGINX:

 

Далее, устанавливаем сам NGINX, PHP5-FPM и сопутствующий софт:

Устанавливаемые пакеты можно было бы и перечислить в строку, однако виртуальная машина в Digital Ocean в этом случае принудительно приводит к аборту. Выглядит это вот так:

 

Поэтому выполняйте команды одну за одной, последовательно. В процессе установки спросит пароль для MySQL, придумайте пароль посложнее и запишите его, впоследствии пригодится 🙂 Наш сервер будет исполнять PHP посредством PHP5-FPM. Никакой Apache нам не тарахтел, по двум причинам:

  1. NGINX потребляет меньше памяти, чем Apache;
  2. Каждый сайт будет «запускаться» от своего юзера.

Для быстрых правок на сервере я советую связку PuTTY + MC. Для более вдумчивой и комфортной работы — WinSCP + Sublime Text 3. Все это лезет на сервер посредством SSH/SFTP, поэтому стандартный FTP нам также не тарахтел 🙂

Создадим группу SFTP (выполняем команду в консоли):

 

Теперь запускаем MC, находим файл:

 

В конец файла добавляем:

 

Комментируем там же строку:

 

Теперь для нашего будущего сайта нужно создать домашнюю директорию, директорию для временных файлов, юзера, добавить его в группу SFTP и назначить домашнюю директорию. Выполняем команды:

 

Далее надо настроить PHP и NGINX. Открываем файл:

 

Втыкаем в него это:

 

Теперь открываем файл:

 

Можно сделать резервную копию старого, если хотите. В новый файл пишем:

 

Открываем файл:

 

Комментируем строку:

 

Настало время разобраться с виртуальными хостами. NGINX подгружает сайты из директории /etc/nginx/sites-enabled/, а рядом с ней есть директория /etc/nginx/sites-available/. В первой директории находятся симлинки на конфиг файлы сайтов из второй директории. Это очень удобно, для удаления/отключения виртуального хоста надо просто удалить симлинк и перезапустить NGINX. Стандартный конфиг файл для виртуального сервера выглядит так:

 

В этих настройках сразу активированы Frienfly URLs, отдача статики и отработка PHP посредством PHP5-FPM (для него обозначается backend, 1-я строка конфига). Следующий можно создавать, просто скопировав этот конфиг и поменяв название одного сайта, на название другого. Далее, создаем симлинк

 

Далее, надо создать процесс PHP5-FPM для сайта. Создаем файл:

 

В него пишем:

 

Перезапускаем сервисы:

Все 🙂

Статья доступна здесь, но, на всякий случай, если по желанию каких-нибудь представителей сексуальных меньшинств, или организаций, в которых они состоят, статью выпилят — я сделал скриншот.

 

Псковская губерния  №33 705

Намедни со мной приключилась очень оживлённая и местами крайне острая дискуссия, в ходе которой обсуждались проблемы диагностики и лечения рака, легализация детской эвтаназии, а так же умерщвление датчанами своих жирафов.

Этим постом я бы хотел её продолжить для большей аудитории, высказав свою точку зрения.

1. Безнадёжно больные млекопитающие, вне зависимости от их принадлежности к роду человеческому, должны умерщвляться как можно быстрее. В случае с людьми – больной должен сам принять решение о времени и способе ухода из жизни. В случае с малыми людьми – родители ребёнка не должны цепляться и проявить милосердие в смерти. Нет никакого логически-верного обоснования причинения бесконечных мучений человеку в попытках продлить его существование. Если известные средства лечения уже были перепробованы и ничего не помогло – человека надо отпустить, а не ширять опиатами по расписанию. Родственники, возводящие себе пьедестал мучеников у кровати умирающего ребёнка, омерзительны. Государство, обрекающее людей на мучительнейшую смерть, запрещая смерть по желанию – просто бесчеловечно.

Государство, выдавая паспорт человеку, удостоверяет его в том что он способен нести ответственность за свои решения и волен распоряжаться всем что имеет, но, почему-то, кроме жизни. Я считаю, что каждому мудоёбу, который выступает против эвтаназии, нужно сначала дать почувствовать на собственной шкуре, что такое рак. Ну, там, бычки об него тушить каждые две минуты, или погрузить в воду и заставить долго-долго, годами, дышать через соломинку и периодически взрывать петарду в лёгком.

Если бы государственные деньги, которые тратятся на поддержание жизни считанных раковых больных, тратились на повальную раннюю диагностику рака (а их хватит, я почти уверен), то, возможно, один небезразличный мне человек сейчас бы не рвал себя на части рядом с мамой с раком в терминальной стадии.

Есть другой момент, о котором я недавно узнал – больные очень редкими заболеваниями. Настолько редкими, что на всю Россию их человек тридцать. Эти болезни смертельны и лекарства для этих людей просто баснословно дороги – буквально сотни тысяч долларов за упаковку. Но с ними люди могут жить более-менее нормально. И, когда между фарм-компаниями, которые занимаются разработкой таких лекарств, и государством ведутся переговоры о закупках на следующий период, то обычно диалог ведётся примерно следующим образом: “Ну, вы понимаете, вы запрашиваете -дцать миллионов долларов из нашего и без того бедного бюджета для поддержания жизни вот этим считанным людям. Мы не можем себе этого позволить, мы можем дать только ½-дцать.” – “Ну, хорошо, вот вам список больных, пожалуйста, отметьте здесь, кто из них в следующем периоде умрёт.” И деньги даются. Несмотря на то что налоговые выплаты этих людей никогда не окупят затрат на их лечение.

Вот тут и начинается настоящая битва логики, милосердия, человечности и практичности. За годовой бюджет не лечения, а поддержания жизни такого больного, можно построить хорошую районную больницу и выкрасить всю округу зелёнкой в четыре слоя. По идее, за счёт улучшения медицинского обслуживания, будут спасены пара-тройка десятков жизней, или, как минимум, продлены на несколько лет жизни людей, которые бы в другой ситуации только копили бы травмы в организме из-за недоступности медицинской помощи и рано скончались бы по этой причине.

Но эти люди далеко и прямо сейчас не умирают. А тут, вот оно, имя на листке. Это человек. Пока ещё живой. И, если поставить напротив его имени галочку, то он умрёт. Зато будет больница. Но он умрёт и это будет моё решение. Зато будет больница…

А ещё эти деньги реально двигают медицину. Космическая стоимость этих лекарств складывается, в том числе, из миллионов долларов, вкладываемых в исследования методов борьбы с этими и многими другими болезнями. Т.е. формально этими деньгами оплачивается прогресс.

Я бы, вероятно, подписал обнуление бюджета на лекарства для этих людей, в пользу строительства тридцати районных больниц. И жил бы с этим. С пикетами “Янковский – убийца” и кампанией “Он загубил этого ребёнка”. Но это я. А люди обычно не готовы брать на себя такую ответственность.

2. Жирафы. Тут всё просто – это собственность зоопарка и они вольны делать с ними всё что угодно. Единственный вопрос у меня вызывает публичность экзекуции, но никто же насильно людей не тащил на это смотреть? В общем, зоопарк правда пытался спасти жизнь животному, но не вышло. Поэтому защитники жирафов идут в жопу, ведь они либо вообще не пошевелились, чтобы, например, устроить жирафа в любой из национальных парков Африки, либо у них это тоже не получилось, тогда нечего ныть. Все сделали что могли.

“Они кормили жирафами львов!” – “Ну и что? Это жизнь. Нечего ценному продукту пропадать. Люди каждый день съедают сотни тысяч коров и свиней, и что?” – “Я не ем мяса, это бесчеловечно – выращивать животное на убой!” – “А кто тебе сказал, что помидор и салат не страдают, когда ты их режешь тонкими кружочками и рвёшь на части? Жри камни – они точно мёртвые и ничего не ощущают”.

Некоторое время я бился над тем, что мой компьютер в неопределённый момент перестал опознавать мои Nexus-устройства как внешние носители.
Т.е. при подключении к компьютеру ничего не происходило, только добавлялось устройство в списке.

В общем, после продолжительного рытья по интернетам было найдено решение.

Нужно в inf-файле гугловских драйверов для USB добавить одну строку в два места.

В общем, идём в папку с Android SDK – android-sdk\extras\google\usb_driver

Открываем на редактирование файл android_winusb.inf

В обе секции ;Google Nexus (generic)добавляем текст

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE1&MI_01

Затем, подключаем устройство, которое не видит комп и открываем диспетчер устройств. В самом верху списка будет секция Android devices. Внутри кликаем правой кнопкой на каждом пункте и выбираем Uninstall (“Удалить” на русской винде) и ставим галку “Uninstall drivers”.

Отключаем устройство.

После того как устройства исчезли, находим файл, который мы редактировали. Нажимаем на него правой кнопкой и выбираем Install (Установить). Есть большая вероятность, что винда выругается на неподписанные драйверы. Соглашаемся с установкой на свой страх.

После того как винда скажет, что всё получилось и дрова установлены, подключаем устройство и всё должно работать. Ну, у меня заработало.

Кто не знает, как заставить винду разрешать устанавливать неподписанные драйверы – велкам в поиск. Этот топик не о том.

Если лень редактировать, то можно просто скачать этот файл http://rghost.ru/51533180 (до 10.02.2014). Это мои драйверы для Nexus из комплекта SDK.

 

kinopoisk.ru

 

 

 

 

 

 

 

 

9/10

Меня реально потряхивает.
Это невероятный фильм. Он соберёт все цацки, какие только дают на фестивалях.
Здесь нет мега-звёзд, нет супер-игры актёров (хотя, всё сыграно вполне на уровне), нет ни одного спецэффекта. Весь фильм — чудовищная история, которая едва не была похоронена.
Евреи точно канонизируют всю съёмочную группу.

Перед просмотром приготовить водку, стакан и ржаной хлеб.
Будет нужен.

Вообще, появление подобных фильмов позволяет жить надежде на что-то лучшее. На то что когда-нибудь ёбаная спираль истории будет разогнута и человечество пойдёт в светлое будущее прямой дорогой.

— “Ты знаешь, Юзек, весь мир – это большая яма с говном. И мы не сделаем его лучше. Но мы не сделаем его хуже, а это уже что-то.”

Завидую полякам, дожившим до этого дня – когда ТАКОЕ довелось им снять. Это грандиозный прорыв на другой уровень сознания. И то, что страна от фильма встает на дыбы – свидетельство того, что авторы попали в точку.”

Мне жаль, что при мне в России не случится ничего подобного.

Статья про фильм с большим количеством спойлеров, которую надо обязательно прочесть после просмотра фильма, потому что она прекрасно написана

Ссылка на вики с историей события.

 

Тот пиздец, что происходит в Бирюлёво обсуждают даже за рубежом. И для всех совершенно очевидно, что причина не в том, что какие-то дремучие кавказцы нагло себя ведут и позволяют себе гнусные шутки в отношении девушек, а затем убивают их молодых людей; а в том что миллион двести восемьдесят тысяч сотрудников МВД не могут их обуздать. Колокольцев пообещал найти невиновных и наказать кого попало. Обнаружили они, блядь, криминогенный очаг на овощебазе. Внезапно, блядь. За ночь вылупился. Миллион-триста тысяч пидорасов-бездельников.

Ведь, если задуматься, то это число больше, чем, например, всех чеченцев вместе взятых. Если добавить регулярную армию – ещё, без малого, полтора миллиона человек со всеми танками, самолётами, прочей бронетехникой и совковыми лопатами, то совершенно определённо можно утверждать, что проблему можно решить со всеми южными гражданами и негражданами, а заодно и своих бандитов повыщелкать.

Но решать её нынешней власти невыгодно. Потому что национальная проблема отвлекает гнев граждан от проблемы тотальной коррупции и полной интеграции криминалитета с властью.

[м-дя, опять написал 12 абзацев, пышущих экстремизмом, разжиганием и призывами]

Этих мусоров-дармоедов в стране целый город-миллионник. И они получают зарплаты из наших налогов.  Нахуй нужна такая полиция?

Мне реально удивительно, что дебилы во власти, во главе с главным мудоёбом – Путиным, не понимают того что страна бегом бежит в объятья гражданской войны. Причём, войны, где сначала перебьют всех чурок, потом всех, кто хоть как-то был связан с властью, а потом начнётся делёж того что осталось.

Они, наверное, надеются, что успеют сбежать. В общем, не зря надеются. Сбегут. Проблема только в том, что новая власть будет активно искать тех, кто напиздил денег, будучи во власти нынешней, будет пытаться их вернуть, и в мире резко повысится спрос на ледорубы. Ведь, в конечном итоге у власти окажутся такие люди, по сравнению с которыми Навальный, с его спорной в настоящий момент риторикой, будет выглядеть как Ганди.

Хотя, на что я надеюсь, право. Откуда у этих мудаков мозги.