Установка https на localhost

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

Сначала создаем файлы Certificate authority (CA). Вместо Example-Root-CA можно подставить свое название.

openssl req -x509 -nodes -new -sha256 -days 1024 -newkey rsa:2048 -keyout RootCA.key -out RootCA.pem -subj "/C=US/CN=Example-Root-CA"
openssl x509 -outform pem -in RootCA.pem -out RootCA.crt

Допустим мы хотим использовать домен project.local, для этого создаем файл domains.ext со следующим содержимым:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = project.local

Затем генерируем файлы для домена. US, YourState, YourCity, Example-Certificates можно заменить на свои данные.

openssl req -new -nodes -newkey rsa:2048 -keyout localhost.key -out localhost.csr -subj "/C=US/ST=YourState/L=YourCity/O=Example-Certificates/CN=localhost.local"
openssl x509 -req -sha256 -days 1024 -in localhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile domains.ext -out localhost.crt

Затем добавляем сертификат в настройки веб-сервера. В nginx это будет выглядеть примерно так:

  listen               443 ssl;
  server_name          project.local;
  ssl_certificate      /path/to/localhost.crt;
  ssl_certificate_key  /path/to/localhost.key;

Теперь необходимо добавить наш CA в список доверенных.

  • В Windows 10 для Chrome, IE11 и Edge это можно сделать, нажав правой клавишей на файл RootCA.crt и выбрав "Установить". Сертификат необходимо добавить в "Trusted Root Certification Authorities".
  • В Firefox это можно сделать, включив на странице about:config опцию security.enterprise_roots.enabled. Либо перейдя на about:preferences#privacy импортировать RootCA.pem.

Полезные ссылки:

Нерешенные проблемы: нет возможности обращаться к произвольному локальному IP (например, 127.0.0.9) по https - необходимо обязательно использовать домен.

Восстановление соединения с интернетом через модем D-Link DIR-615

Отключился интернет (с Netbynet такое постоянно происходит). Диагностика и перезагрузка модема не помогла. Модем (D-Link DIR-615) по адресу 192.168.0.1 не отвечает. На основе рекомендаций из мануала, а также с официального форума сделал следующее:

  • Зашел в настройки соединения: Control Panel\All Control Panel Items\Network Connections.
  • У активного соединения в настройках IP версии 4 (TCP/IPv4) выставил автоматическое определение IP и DNS.
  • Подключил кабель напрямую к компьютеру.
  • Зашел в браузер и в ответ на сообщение о неизвестном MAC-адресе (интернет привязывается к MAC-адресу) авторизовался в личном кабинете netbynet.
  • Выключил модем.
  • Зажал кнопку Reset на 5-6 секунд и, не отпуская, включил модем. После чего отпустил кнопку. Важно зажимать больше 4х секунд, но меньше 8ми, т.к. иначе модем уйдет в аварийный режим. (Аварийный режим сбрасывается перезагрузкой модема.)
  • Подключил кабель назад к модему.
  • Зашел на 192.168.0.1 и первым делом сменил пароль.
  • Создал соединение, в настройках клонировав MAC-адрес с компьютера.
  • Включил wi-fi.

It is a capital mistake to theorize before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts.

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

A Scandal in Bohemia, Arthur Conan Doyle, 1891
Как включить чувствительность к регистру в Windows 10

Начиная с билда 17107 в Windows 10 появилась возможность включать регистрозависимость определенным папкам. Это достигается с помощью установки флага FILE_FLAG_POSIX_SEMANTICS.
Текущее состояние можно посмотреть, вызвав следующую команду в PowerShell или cmd:

fsutil.exe file queryCaseSensitiveInfo {path}

Где {path} - это путь к директории, которую мы проверяем. Например, C:\Test.
Чтобы включить чувствительность к регистру в директории {path1} и выключить в директории {path2}, нужно вызвать следующие команды:

fsutil.exe file setCaseSensitiveInfo {path1} enable
fsutil.exe file setCaseSensitiveInfo {path2} disable

Чувствительность включается/выключается только в указанной директории и никак не меняется в дочерних. Все директории созданные через WSL наследуют значение флага родительской директории.
Более подробно можно прочесть в официальном блоге.

Для того чтобы рекурсивно выставить флаг директории и всем ее дочерним, необходимо в PowerShell (не в cmd!) перейти в корневую директорию и в вызвать следующую команду (источник):

(Get-ChildItem -Recurse -Directory).FullName | ForEach-Object {fsutil.exe file setCaseSensitiveInfo $_ enable}

PowerShell необходимо запускать от имени Администратора. Также еще немного полезной информации можно найти здесь.

Впечатления о "Непобедимом" Станислава Лема

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

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

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

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

Повествование развивается с очень ярким мистическим оттенком и завлекает читателя проникнуться ощущением тайны планеты Регис III. Поначалу сюжет похож на хороший фантастический ужастик, но ближе к концу все больше и больше облачается отношение человека к окружающему миру и, в частности, к далекой планете. Они не могли "просто улететь ни с чем и оставить планету в покое", но раз за разом терпели неудачи. На протяжении романа отношение Рохана (главного героя произведения) к планете несколько раз меняется и именно через него удается прочувствовать всю ситуацию, с которой столкнулись астронавты.

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

Jaki śmieszny i szaleńczy zarazem jest ten „podbój za największą cenę”, to „heroiczne trwanie człowieka”, ta chęć odpłaty za śmierć towarzyszy, którzy zginęli, bo wysłano ich na tę śmierć… Byliśmy po prostu nieostrożni, zbyt wiele zaufania pokładaliśmy w naszych miotaczach i czujnikach, popełniliśmy błędy i ponosimy konsekwencje. My, tylko my jesteśmy winni.

Człowiek <…> jeszcze nie wzniósł się na właściwą wysokość, jeszcze nie zasłużył na tak pięknie nazwaną postawę galaktocentryczną, która wysławiana od dawna, nie na tym polega, aby szukać tylko podobnych sobie i takich tylko rozumieć, ale na tym, żeby nie wtrącać się do nie swoich, nieludzkich spraw. Zagarniać pustkę — owszem, dlaczegóż by nie, ale nie atakować tego, co istnieje, co w ciągu milionoleci wytworzyło swoją własną, nie podległą nikomu ani niczemu oprócz sił promienistych i sił materialnych, równowagę trwania, czynnego, aktywnego trwania, które jest ani lepsze, ani gorsze od trwania białkowych związków, zwanych zwierzętami czy ludźmi.

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

Человек <…> ещё не поднялся на должную высоту, ещё не заслужил права быть, а не только числиться личностью, красиво именуемой «галактоцентрической», издавна им самим прославляемой. Галактоцентризм ведь не в том состоит, чтобы искать только себе подобных и только их понимать, а в том, чтобы не вмешиваться в не свои, нелюдские дела. Захватить, освоить пустоту — ну конечно же, пожалуйста, почему бы нет; но нельзя набрасываться на то, что за миллионы лет создало своё собственное, ни от кого и ни от чего, кроме законов природы, не зависящее устойчивое равновесие существования, деятельного, активного существования, которое не хуже и не лучше существования белковых тел, именуемых животными или людьми.

Niezwyciężony, Stanisław Lem, 1964
youtube-dl - скачивание видео с youtube и других сервисов

Для установки переходим на http://rg3.github.io/youtube-dl/download.html (либо сюда) и следуем инструкциям.

Для того чтобы скачать видео в лучшем доступном качестве достаточно вызвать следующую команду:

youtube-dl https://www.youtube.com/watch?v=dQw4w9WgXcQ

Список всех поддерживаемых сайтов можно найти здесь - http://rg3.github.io/youtube-dl/supportedsites.html
Документация - https://github.com/rg3/youtube-dl/blob/master/README.md

Создание ключа для доступа по ssh

Авторизация по ключу с Linux

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

ssh-keygen

Будет создано 2 ключа, по дефолту это ~/.ssh/id_rsa (приватный) и ~/.ssh/id_rsa.pub (публичный). Скопируйте содержимое публичного ключа и добавьте его в файл ~/.ssh/authorized_keys на удаленном сервере.

Получение SSL-сертификата от Let's Encrypt

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

Попытка получить сертификаты через плагин для nginx не увенчалась успехом, так что я воспользовался другим вариантом - webroot. Для него необходимо разрешить доступ к статическим файлам в директории .well-known. В nginx это можно сделать, к примеру, так:

location ^~ /.well-known {
    try_files $uri =404;
}

После чего запускаем команду на получение. К примеру, для доменов alhames.ru и www.alhames.ru, ссылающихся на директорию /var/www/alhames.ru/public, она будет выглядеть так:

certbot certonly --webroot -w /var/www/alhames.ru/public -d alhames.ru -d www.alhames.ru

По результату выполнения команды будут написаны пути для публичного fullchain.pem и приватного privkey.pem ключей, которые необходимо добавить в конфигурацию веб-сервера.

Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.

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

Dune by Frank Herbert, 1965