NginX — установка бесплатных SSL-сертификатов для нескольких сайтов

  1. Создаем пользователя letsencrypt и необходимые директории:

  2. adduser —home /var/www/challenges \
    —shell /bin/sh \
    —disabled-password \
    —disabled-login \
    letsencrypt
    mkdir -p /etc/letsencrypt/domains

  3. Создаём основные приватные ключи:

  4. cd /etc/letsencrypt/
    openssl dhparam -out dhparam.pem 2048
    openssl genrsa 4096 > account.key

  5. Скачиваем клиент acme_tiny.py:

  6. cd /var/www/challenges
    wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py

  7. Создаем сценарий /var/www/challenges/acme-tiny.sh, для автоматизации. Изменив значение переменной DOMAINS, указываем имена доменов, для которых необходимо получить сертификаты:
  8. DOMAINS=( site1.ru site2.com )
    DOMAIN_ROOT=/etc/letsencrypt/domains
    ACCOUNT_KEY=/etc/letsencrypt/account.key
    ACME_DIR=/var/www/challenges
    ACME_TINY=${ACME_DIR}/acme_tiny.py
    
    [ -d ${DOMAIN_ROOT} ] || { echo "ERROR: DOMAIN_ROOT dir does not exists"; exit 1; }
    [ -f ${ACCOUNT_KEY} ] || { echo "ERROR: ACCOUNT_KEY not found."; exit 1; }
    [ -d ${ACME_DIR} ] || { echo "ERROR: ACME_DIR dir does not exists"; exit 1; }
    [ -f "$ACME_TINY" ] || { echo "ERROR: ACME_TINY not found."; exit 1; }
    
    wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > ${DOMAIN_ROOT}/intermediate.pem
    
    for DOMAIN in "${DOMAINS[@]}"
    do
      if [ ! -f "${DOMAIN_ROOT}/${DOMAIN}.key" ]; then
        echo "INFO: Generation private key for $DOMAIN";
        openssl genrsa 4096 > ${DOMAIN_ROOT}/${DOMAIN}.key
        openssl req -new -sha256 -key ${DOMAIN_ROOT}/${DOMAIN}.key -subj "/CN=${DOMAIN}" > ${DOMAIN_ROOT}/${DOMAIN}.csr
      fi
    
      echo "INFO: Generation cert for $DOMAIN";
      python ${ACME_TINY} --account-key ${ACCOUNT_KEY} --csr ${DOMAIN_ROOT}/${DOMAIN}.csr --acme-dir ${ACME_DIR} > ${DOMAIN_ROOT}/${DOMAIN}.crt || exit 1
      cat ${DOMAIN_ROOT}/${DOMAIN}.crt ${DOMAIN_ROOT}/intermediate.pem > ${DOMAIN_ROOT}/${DOMAIN}.pem
    done
    
    sudo service nginx reload
    
  9. Меняем права на директории:

  10. chmod 755 /etc/letsencrypt
    chown -R letsencrypt: /etc/letsencrypt /var/www/challenges

  11. Создаём файл /etc/nginx/acme:
  12. location ^~ /.well-known/acme-challenge/ {
        alias /var/www/challenges/;
        try_files $uri =404;
        allow all;
    }
    
  13. В конфигурационный файл nginx каждого сайта, в блок server, добавляем строку:

  14. include /etc/nginx/acme;

  15. Запускаем скрипт:

  16. /bin/bash /var/www/challenges/acme-tiny.sh

  17. Включаем шифрование, добавив в конфигурационные файлы nginx каждого сайта:
  18. server {
        server_name site1.ru www.site1.ru;
        listen 80;
    
        include acme;
        # включим переадресацию на https-версию сайта
        location / {
            return 301 https://$host$request_uri;
        }
    }
    
    server {
            server_name site1.ru www.site1.ru;
            listen 443 ssl;
    
            # включим шифрование
            ssl on;
            ssl_certificate /etc/letsencrypt/domains/alluborka.ru.pem;
            ssl_certificate_key /etc/letsencrypt/domains/alluborka.ru.key;
            ssl_dhparam /etc/letsencrypt/dhparam.pem;
    
            ssl_stapling on;
            ssl_stapling_verify on;
    
            # исключим возврат на http-версию сайта
            add_header Strict-Transport-Security "max-age=31536000";
    
            # явно "сломаем" все картинки с http://
            add_header Content-Security-Policy "img-src https: data:; upgrade-insecure-requests";
    
        ...
    }
    
  19. Для автоматического продления сертификатов, создадим файл /etc/cron.d/letsencrypt:
  20. SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    0 0 1 * * letsencrypt /bin/bash /var/www/challenges/acme-tiny.sh >> /var/log/acme_tiny.log
    
  21. Создадим файлы журналов:

  22. sudo touch /var/log/acme_tiny.log
    sudo chown letsencrypt: /var/log/acme_tiny.log

https://superuserdo.info/?p=747

OpenVPN: ROUTE: route addition failed using CreateIpForwardEntry

При подключении VPN туннеля, посредством OpenVPN, не происходит добавления маршрута до удалённой локальной сети (IPv4 Local network(s)). При этом, в журнале OpenVPN при установке соединения присутствует запись: route addition failed using CreateIpForwardEntry.
Скорее всего, программе не хватило прав для добавления записи в таблицу маршрутизации. Чтобы это исправить, необходимо отключить установленное соединение, и закрыть OpenVPN GUI в системном трее (ПКМ на его иконке в правом нижнем углу экрана → Выход). Далее следует выбрать и выполнить один из пунктов:

  • На ярлыке OpenVPN GUI кликаем правой кнопкой мыши → выбираем пункт Свойства → в открывшемся окне выбираем вкладку Совместимость → установливаем галочку на пункте Выполнять эту программу от имени администратора → нажимаем кнопку Ok.
  • Запускайте OpenVPN GUI не двойным кликом по ярлыку, а одинарным кликом правой кнопкой мыши по ярлыку и выбирайте пункт Запуск от имени администратора.

RAID — статус диска Foreign

При установке в сервер диска, ранее использовавшегося в RAID-массиве на другом сервере, его статус отображается как Foreign, что не даёт использовать его для создания нового или восстановления деградировавшего массива.
Для того, чтобы иметь возможность использовать такой диск, необходимо в программе управления RAID-контроллером сканировать чужеродную конфигурацию и удалить её.
Например, в программе MegaRAID Storage Manager, необходимо:

  1. выбрать контроллер, к которому подключен требуемый диск
  2. в верхнем меню программы выбрать Go ToControllerScan Foreign Configuration
  3. в открывшемся окне выбрать Clear: Remove logical configuration froam all foreign drives и нажать кнопку Ok
  4. в новом открывшемся окне подтвердить действие, установив галку Confirm и нажав кнопку Yes
  5. появляется окно с текстом об успешной очистке, где необходимо нажать кнопку Ok.

cmd — размеры сектора диска и кластера файловой системы

Узнать размеры сектора диска и кластера файловой системы можно с помощью командной строки. Для этого, в строку поиска на панели задач вбиваем cmd → нажимаем ПКМ на результате поиска и выбираем Запустить от имени администратора → в открывшееся окно копируем команду:

fsutil fsinfo ntfsinfo C:

где С: — имя диска.

Windows — не подключается L2TP: ошибка 789

При попытке подключиться с Windows к VPN серверу посредством L2TP без использования протокола IpSec, в большинстве случаев соединение не устанавливается. При этом отображается ошибка:
Ошибка 789 — «Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности во время согласований с удаленным компьютером».
А в журнале регистрируется событие:
… пользователь установил удаленное подключение которое завершилось сбоем возвращен код ошибки 789

Причина ошибки кроется в проверке подлинности на основе предварительного ключа для подключений L2TP/IPSec, ввиду того, что по-умолчанию Windows не хочет создавать подключения по L2TP без IpSec. То есть Windows позволяет создавать L2TP тоннель только в зашифрованном соединении, даже несмотря на используемую опцию Шифрование данныхНеобязательное в настройках подключения.
В большинстве случаев, проблема решается добавлением в реестр системы ключа ProhibitIpSec со значением 1. Для этого, в строку поиска на панели задач вбиваем cmd → нажимаем ПКМ на результате поиска и выбираем Запустить от имени администратора → в открывшееся окно копируем команду:

reg add «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters» /v ProhibitIpSec /t REG_DWORD /d 1 /f

и нажимаем Enter.
Также, для ослабления уровня шифрования L2TP, в реестр можно добавить ключ AllowL2TPWeakCrypto со значением 1. Для этого в окно командной строки необходимо скопировать:

reg add «HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters» /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f

и нажимать Enter.
После чего необходимо перезагрузить компьютер.
http://superuserdo.info/?p=720

DISKPART — зависает при выполнении

При вводе команды diskpart в командной строке Windows, данная команда отрабатывает, запуская утилиту, но сама утилита не выдаёт никакого результата и не позволяет вводить команды для работы с дисками.
Diskpart зависает, если есть проблема доступа к одному из дисков. Это может быть вызвано блокировкой доступа к диску другой программой (например, при записи образа), или проблемой с самим диском или контроллером.
Для решения проблемы, необходимо остановить процессы, работающие с данным диском в текущий момент. Если это не помогло, переподключить диск. Если и это не помогло, то необходимо проверить работоспособность диска какой-либо программой диагностики.

Mikrotik — проблемы с RDP

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

Данная проблема наблюдается при активном правиле fasttrack connection фильтра фаервола. Причём, даже, если это правило расположено в таблице ниже правил, касающихся маршрутизации VPN трафика. Отключение этого правила, способствует восстановлению правильной маршрутизации пакетов и установлению RDP-подключений.

Перезагружается проводник Windows из-за PDF файла

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

Имя сбойного приложения: explorer.exe, версия: 10.0.16299.15, метка времени: 0x66e02565
Имя сбойного модуля: ConvertToPDFShellExtension_x64.dll, версия: 7.2.0.424, метка времени: 0x5668fed6
Код исключения: 0xc0000005

Приложение: explorer.exe
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за необработанного исключения.
Сведения об исключении: код исключения c0000005, адрес исключения 00007FFC85A04532


Данная проблема наблюдается из-за некорректной работы DLL-библиотеки программы Foxit PhantomPDF. Проблема решается удалением этой программы.

Hyper-V: driver/device has a different version

После переноса виртуальных машин между серверами одной ОС (в частности Windows Server 2012 R2), могут возникнуть расхождения версий серверных и клиентских драйверов виртуальных устройств. При этом в журнале событий регистрируются предупреждения следующего содержания:
Networking driver in XXX loaded but has a different version from the server. Server version 5.0 Client version 3.2 (Virtual machine ID). The device will work, but this is an unsupported configuration. This means that technical support will not be provided until this problem is resolved. To fix this problem, upgrade the integration services. To upgrade, connect to the virtual machine and select Insert Integration Services Setup Disk from the Action menu.
A storage device in ‘XXX’ loaded but has a different version from the server. Server version 6.0 Client version 4.2 (Virtual machine ID). The device will work, but this is an unsupported configuration. This means that technical support will not be provided until this problem is resolved. To fix this problem, upgrade the integration services. To upgrade, connect to the virtual machine and select Insert Integration Services Setup Disk from the Action menu.

Устранить эту проблему можно, подключив к виртуальной машине образ диска со службами интеграции:
подключаемся к виртуальной машине через диспетчер Hyper-V → Медиа → DVD-дисковод → Вставка диска → указываем путь до образа диска C:\Windows\System32\vmguest.iso → в виртуальной машине используем автозапуск или запускаем setup.exe на DVD диске → соглашаемся обновить службы интеграции, нажав кнопку Ok → перезагружаем машину.

IE 11: An error has ocurredJSPlugin.3005

В Windows 7 в Internet Explorer 11, при посещении сайта, не выполняется загрузка ActiveX-компонента. Средства разработчика браузера отображают следующую ошибку:
Exception in window.onload: Error: An error has ocurredJSPlugin.3005

Для устранения данной проблемы, Microsoft выпустила обновления для Internet Explorer:
для 32-разрядных ОС https://www.microsoft.com/ru-RU/download/confirmation.aspx?id=45134
для 64-разрядных ОС https://www.microsoft.com/ru-RU/download/confirmation.aspx?id=45154