https://www.youtube.com/watch?v=gfFk2AB-X-U&t=74s
simpla500
понедельник, 18 января 2021 г.
понедельник, 22 июля 2019 г.
SSL сертификат
нас бесплатный сертификат от https://letsencrypt.org/
Создание SSL-сертификата для Nginx http://slc.tl/a24t
Создание SSL-сертификата для Apache http://slc.tl/4jb6d
sssss
Создание SSL-сертификата для Nginx http://slc.tl/a24t
Создание SSL-сертификата для Apache http://slc.tl/4jb6d
sssss
Создание SSL-сертификата для Apache с Let's Encrypt на сервере с Ubuntu 16.04
Введение
Совсем недавно компания Google заявила, что изменяет свою политику ранжирования сайтов в поисковой выдаче. Представители компании заявили, что будут поднимать сайты, работающие на протоколе HTTPS, вверх выдачи. И как результат— цепная реакция: владельцы крупных проектов тут же позаботились об установке SSL-сертификата, дабы не терять свои позиции в поисковой выдаче от Google. SSL-сертификат позволяет шифровать трафик, передаваемый между клиентом и сервером, обеспечивая защиту персональных данных. И самое главное - сертификат совершенно бесплатен! В этом руководстве мы ознакомимся с процессом установки SSL/TLS сертификата на веб-сервер Apache при помощи Let's Encrypt.
Технические требования
- Сервер с Ubuntu 16.04
- Установленный веб-сервер Apache.
- Доменное имя, A-запись которого указывает на ваш сервер
Шаг 1. Установка и настройка клиента Let's Encrypt
Перед тем, как начинать производить какие-либо операции на вашем сервере, обязательно обновите индекс пакетов в системе:
apt-get update
После этого можно приступать к загрузке клиента Let's Encrypt:
apt-get install python-letsencrypt-apache
Многие любят Let's Encrypt не только за возможность установит сертификат бесплатно, но и за возможность сделать это в "один клик"(в данном случае, введением одной команды). Запросите установку SSL-сертификата командой, указав нужный вам домен(и в случае необходимости — поддомены):
letsencrypt --apache -d vscale-letsencrypt.cf -d www.vscale-letsencrypt.cf
Заметка: для этого руководства мною был заказан бесплатный домен сроком на один месяц. На вашем сервере вместо vscale-letsencrypt.cf указывайте свой домен.
Во время установки программа попросит вас ввести адрес вашей электронной почты. Не игнорируйте этот пункт, поскольку почта может быть использована для восстановления утерянного ключа домена.
Следующим шагом подтвердите согласие с пользовательским соглашением. Далее программа попросит вас выбрать тип SSL-сертификата. Предоставляется два типа на выбор:
- Easy — https будет доступен опционально. Сайт по прежнему будет работать на HTTP, но сможет принимать HTTPS там, где это укажет администратор.
- Secure — все запросы будут принудительно отправляться к https.
Выбирайте тип сертификата исходя их ваших предпочтений. В данном руководстве будет выбран тип Secure.
Важно: если вы выбрали тип Secure и у вас предварительно не настроен редирект на https://, то вам нужно открыть конфигурационный файл вашего сайта:
nano /etc/apache2/sites-available/000-default.conf
Добавьте в него следующие строки для редиректа:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ServerName www.vscale-letsencrypt.cf Redirect permanent / https://vscale-letsencrypt.cf/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
На этом настройку Let's Encrypt можно считать завершённой. Проверьте, появился ли HTTPS на вашем сайте.
Шаг 2. Настройка автопродления
Согласно политике Let's Encrypt, сертификат действителен 3 месяца(90 дней), однако, его можно продлить вручную при помощи команды:
letsencrypt renew
Но гораздо удобнее продлевать сертификат автоматически. Поможет нам в этом Cron — демон-планировщик задач в UNIX-системах. Активируйте его при помощи команды:
crontab -e
Из списка текстовых редакторов выберите nano, в самом конце файла вставьте строку:
0 0 1 * * /usr/bin/letsencrypt renew >> /var/log/le-renew.log
Эта строка значит, что команда letsencrypt renew будет запускаться раз в месяц и сохранять результат работы в лог-файл. В данном случае, команда была введена 25.11.2016 в 16:04, а значит, что планировщик задач выполнит задачу ровно через месяц - 25.12.2016 в 16:04. Сохраните файл сочетанием клавиш Ctrl+O, подтвердите сохранение кнопкой Enter. Закрыть текстовый редактор можно кнопкой Ctrl+X.
Заключение
Вы успешно настроили SSL/TLS-сертификат на вашем сервере. Let's Encrypt — это действительно удобный инструмент для начинающего разработчика, позволяющий быстро, удобно и, фактически, в один клик установить SSL/TLS-сертификат. Также, установив сертификат вы подкрепили доверие ваших пользователей показав им, что вы действительно стремитесь защищать их данные.
Создание SSL-сертификатов для Nginx с Let’s Encrypt под Ubuntu 16.04
Некоммерческий удостоверяющий центр Let's Encrypt, развивающийся под эгидой Linux Foundation - хороший способ получить бесплатный (не самоподписанный!) SSL/TLS-сертификат сроком на три месяца, с возможностью автопродления.
В данном руководстве все действия будут выполняться с помощью официального клиента letsencrypt. Он позволяет создать достоверный сертификат, пригодный для использования в различных приложениях, конкретно же речь пойдет об Nginx.
Требования:
- Ubuntu Server 16.04;
- пользователь с sudo-привилегиями;
- собственно домен;
- DNS-запись A вашего домена должна указывать на IPv4-адрес вашего же сервера в Vscale (необходимо для подтверждения владения; доменом). Это также в силе для поддоменов (вроде www.example.site).
Шаг 1. Установка необходимого ПО
Обновим локальные индексы менеджера пакетов и установим клиент letsencrypt:
$ sudo apt-get update $ sudo apt-get install letsencrypt -y
Мы пойдём по пути использования Web-root плагина letsencrypt, суть работы которого заключается в том, что он помещает специальный файл в каталог /.well-known (путь указан относительно корня веб-директории), необходимый для валидации вашего домена серверной частью ПО Let's Encrypt.
Если по какой-либо причине ещё не был установлен веб-сервер Nginx - сделайте это с помощью следующих команд:
$ sudo add-apt-repository ppa:nginx/development $ sudo apt-get update $ sudo apt-get install nginx -y
Шаг 2. Подготовка к выпуску сертификата
Откройте конфигурационный файл Nginx:
$ sudo nano /etc/nginx/sites-available/default
внутри серверного блока (server { ...) поместите блок location:
location ~ /.well-known {
allow all;
}
выйдите из редактора, сохранив изменения, по нажатию Ctrl+X, y, Enter.
Протестируйте конфигурационный файл Nginx на корректность:
$ sudo nginx -t
Перезапустите Nginx:
$ sudo service nginx reload
Шаг 3. Выпуск сертификата
Запустите клиент letsencrypt с повышением и нужными Вам параметрами (/var/www/html - корень вашей веб-директории (по-умолчанию), example.site - домен):
$ sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d example.site -d www.example.site
После этого вам будет предложено ввести e-mail (для получения уведомлений об истечении сертификата, если вы вдруг не захотите настроить автопродление) и согласиться с лицензионным соглашением.
Итак, теперь у вас есть 4 PEM-файла, относящихся к сертификату - можно вывести их имена командой (example.site - ваш домен):
$ sudo ls -l /etc/letsencrypt/live/example.site
Шаг 4. Генерация параметров Диффи-Хеллмана
Для улучшения безопасности - cгенерируем параметры Диффи-Хеллмана и запишем в файл (процесс займёт некоторое время):
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Шаг 5. Изменение конфигурации Nginx:
Опять отредактируем конфигурационный файл Nginx:
$ sudo nano /etc/nginx/sites-available/default
Привожу проверенный вариант:
server {
listen 80;
listen [::]:80;
server_name example.site;
# редирект на HTTPS
return 301 https://$server_name$request_uri;
server_tokens off;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.site;
ssl_certificate /etc/letsencrypt/live/example.site/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.site/privkey.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# конфигурация Modern
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
# HSTS - форсированно устанавливать соединение по HTTPS
add_header Strict-Transport-Security "max-age=15768000";
# Разрешение прикрепления OCSP-ответов сервером
ssl_stapling on;
# Разрешение проверки сервером ответов OCSP
ssl_stapling_verify on;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
# Запрещение выдачи версии nginx в HTTP-заголовках
server_tokens off;
location / {
try_files $uri $uri/ =404;
}
# для валидации Let's Encrypt
location ~ /.well-known {
allow all;
}
}
Для более подробного разъяснения SSL-директив в конфигурации Nginx: документация (на русском) ngx_http_ssl_module.
Преимущества такой конфигурации:
- поддержка бинарного протокола HTTP2
- HTTPS-only
- заточена под максимальную безопасность и современные версии браузеров
- A+-рейтинг по версии SSL Labs
Шаг 6 (необязательный). Настройка автопродления сертификата
Вручную продлить сертификат на 3 месяца можно так:
$ sudo letsencrypt renew
Естественно, следует перезапустить Nginx:
$ sudo service nginx reload
Для автоматизации процесса добавим задание в планировщик сron.
Откройте список заданий cron:
$ crontab -e
Добавьте следующие строки:
30 5 * * 1
sudo letsencrypt renew35 5 * * 1
sudo service nginx reload
Каждый понедельник, в 05:30 будет производиться запуск клиента Let's Encrypt, и в случае необходимости - выполняться продление сертификата.
Заключение
Let's Encrypt выпускает совершенно стандартные сертификаты, без возможности какой-либо настройки. Вся суть состоит в конфигурации веб-сервера Nginx, а именно в нахождении баланса совместимости и безопасности.
Если Вам нужна поддержка более старых устройств/браузеров, рекомендуется воспользоваться Mozilla SSL Configuration Generator. Выберите версии веб-сервера Nginx и openssl, а также, собственно, вариант конфигурации - для старых версий браузеров, среднюю или современную.
понедельник, 24 июня 2019 г.
Подключение сбербанка полное руководство
Тестовые карты
В качестве Cardholder name указывать от 2 слов в английской раскладке.
Для всех карт, вовлеченных в 3d Secure (veres=y, pares=y или a) пароль на ACS: 12345678.
( 12345678 это надо вводить, когда ввел карточку и надал Оплаить)
"Заглушка" в самом шлюзе:
pan:4111 1111 1111 1111
exp date:2019/12
cvv2:123
3dsecure: veres=y, pares=y
pan:6011 0000 0000 0004
exp date:2019/12
cvv2:123
3dsecure: veres=Y pares=A
pan:5555 5555 5555 5599
exp date:2019/12
cvv2:123
3dsecure: veres=n
pan:6390 0200 0000 000003
exp date:2019/12
cvv2:123(необязательный параметр)
3dsecure: veres=y, pares=a
https://developer.sberbank.ru/doc/v1/acquiring/rest-requests1pay
https://developer.sberbank.ru/doc/v1/acquiring/api-basket
https://developer.sberbank.ru/doc/v1/acquiring/rest-requests1pay
<?php
$z=222;
ЭТО ОПЛАТА
$url = 'https://3dsec.sberbank.ru/payment/rest/register.do';
$ch = curl_init($url);
$data='returnUrl=https://www.consul.devh/order/a9e5df12d03ba4788a541fb3678e6b14';
$data.='&failUrl=https://www.consul.devh/order/a9e5df12d03ba4788a541fb3678e6b14?payment_status=fail';
$data.='&orderNumber='.$z;
$data.='&description="Оплата заказа в интернет-магазине КОНСУЛ."';
$data.='&amount=2499000';
$data.='¤cy=643';
$data.='&sessionTimeoutSecs=43200';
$data.='&taxSystem=1';
$data.='&orderBundle={"cartItems":{"items":[{"positionId":"266011","name":"Swarovski Lovely Crystals Mini 5301877","quantity":{"value":"1","measure":"\u0448\u0442"},"itemAmount":2499000,"itemCode":"17907","tax":{"taxType":"0"},"itemPrice":2499000,"itemAttributes":{"attributes":[{"name":"paymentMethod","value":1},{"name":"paymentObject","value":1}]}}]}}';
$data.='&userName=consul-api&password=consul';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$reply=curl_exec($ch);
curl_close($ch);
echo $reply;
echo '<p><p>******<p><p>';
ЭТО ПОЛУЧЕНИЕ СТАТУСА ОПЛАТЫ
$url = 'https://3dsec.sberbank.ru/payment/rest/getOrderStatusExtended.do';
$ch = curl_init($url);
$data='orderNumber='.$z;
$data.='&userName=consul-api&password=consul';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$reply=json_decode(curl_exec($ch));
curl_close($ch);
echo "<pre>";
print_r($reply);
echo "</pre>";
?>
1) если зафиксировать $z=500 номер заказа в коде<p>
передали получили урл перехода на сбер<p>
перешли оплатили<p>
перебросило на стрвницу на сайте<p>
2) запросили запрос по номеру заказа получили оплачен [orderStatus] => 2 https://developer.sberbank.ru/doc/v1/acquiring/rest-requests1pay<p>
Отправка SMS ViberSMS с сайта https://my.devinotele.com/Account/LogOn кабинет
http://docs.devinotele.com/viber-resender.html
Нужны зарегистрированные каналы отправки
<?php
$url = 'https://viber.devinotele.com:444/send';
$username = 'ConsulRuAvia3';
$password = 'hromosk72{{#c=A4z751';
$ch = curl_init($url);
$headers = array(
'Content-Type: application/json',
'Authorization: Basic '. base64_encode("$username:$password")
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data='{
"resendSms" : "true",
"messages" :
[ {
"subject" : "'.$username.'",
"priority" : "realtime",
"validityPeriodSec" : 3600,
"comment" : "comment",
"type" : "viber",
"contentType" : "text",
"content" :
{
"text" : "'.$_GET['text'].'"
},
"address" : "'.$_GET['tel'].'",
"smsText":"'.$_GET['text'].'",
"smsSrcAddress":"'.$username.'",
"smsValidityPeriodSec":5000
} ]
}';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$reply=curl_exec($ch);
curl_close($ch);
echo $reply;
?>
<form>
<input name="tel" value="79199610491"><br>
<input name="text" value="Hellowold!!!"><br>
<input type="submit" value="Send">
</form>
рабочий код
http://u0715817.cp.regruhosting.ru/ind_viber.php
рабочий\
<?php
$url = 'https://viber.devinotele.com:444/send';
$username = 'ConsulRu';
$password = 'k72{{#c=A4';
$username2 = 'Clockshop';
$ch = curl_init($url);
$headers = array(
'Content-Type: application/json',
'Authorization: Basic '. base64_encode("$username:$password")
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data='{
"resendSms" : "true",
"messages" :
[ {
"subject" : "'.$username2.'",
"priority" : "realtime",
"validityPeriodSec" : 30,
"comment" : "comment",
"type" : "viber",
"contentType" : "text",
"content" :
{
"text" : "'.$_GET['text'].'"
},
"address" : "'.$_GET['tel'].'",
"smsText":"'.$_GET['text'].'",
"smsSrcAddress":"'.$username2.'",
"smsValidityPeriodSec":60
} ]
}';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$reply=curl_exec($ch);
curl_close($ch);
echo $reply;
?>
<form>
<input name="tel" value="79199610491"><br>
<input name="text" value="Сработал http://u0715817.cp.regruhosting.ru/ind_viber.php"><br>
<input type="submit" value="Send">
</form>
Нужны зарегистрированные каналы отправки
<?php
$url = 'https://viber.devinotele.com:444/send';
$username = 'ConsulRuAvia3';
$password = 'hromosk72{{#c=A4z751';
$ch = curl_init($url);
$headers = array(
'Content-Type: application/json',
'Authorization: Basic '. base64_encode("$username:$password")
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data='{
"resendSms" : "true",
"messages" :
[ {
"subject" : "'.$username.'",
"priority" : "realtime",
"validityPeriodSec" : 3600,
"comment" : "comment",
"type" : "viber",
"contentType" : "text",
"content" :
{
"text" : "'.$_GET['text'].'"
},
"address" : "'.$_GET['tel'].'",
"smsText":"'.$_GET['text'].'",
"smsSrcAddress":"'.$username.'",
"smsValidityPeriodSec":5000
} ]
}';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$reply=curl_exec($ch);
curl_close($ch);
echo $reply;
?>
<form>
<input name="tel" value="79199610491"><br>
<input name="text" value="Hellowold!!!"><br>
<input type="submit" value="Send">
</form>
рабочий код
http://u0715817.cp.regruhosting.ru/ind_viber.php
рабочий\
<?php
$url = 'https://viber.devinotele.com:444/send';
$username = 'ConsulRu';
$password = 'k72{{#c=A4';
$username2 = 'Clockshop';
$ch = curl_init($url);
$headers = array(
'Content-Type: application/json',
'Authorization: Basic '. base64_encode("$username:$password")
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data='{
"resendSms" : "true",
"messages" :
[ {
"subject" : "'.$username2.'",
"priority" : "realtime",
"validityPeriodSec" : 30,
"comment" : "comment",
"type" : "viber",
"contentType" : "text",
"content" :
{
"text" : "'.$_GET['text'].'"
},
"address" : "'.$_GET['tel'].'",
"smsText":"'.$_GET['text'].'",
"smsSrcAddress":"'.$username2.'",
"smsValidityPeriodSec":60
} ]
}';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$reply=curl_exec($ch);
curl_close($ch);
echo $reply;
?>
<form>
<input name="tel" value="79199610491"><br>
<input name="text" value="Сработал http://u0715817.cp.regruhosting.ru/ind_viber.php"><br>
<input type="submit" value="Send">
</form>
пятница, 21 июня 2019 г.
запуск обмена БД из консоли Gitbash на локалке
соединяемся ssh an43@lamp
ssh u0715817@31.31.196.88
pass
удаление из 360 все /big/ папки
find i360 -path "*/big/*" -delete
pwd где я
выход exit
rm -rf * удалить все в папке в которой нахожусь
rm -rf ddd удалить папку ddd
du -sh сколько занимает папка
переходим в корень сайта на локалке
an43@lamp7:~$ ls
consuldev order-fix-log.txt upd.txt
ssh u0715817@31.31.196.88
pass
удаление из 360 все /big/ папки
find i360 -path "*/big/*" -delete
pwd где я
выход exit
rm -rf * удалить все в папке в которой нахожусь
rm -rf ddd удалить папку ddd
du -sh сколько занимает папка
переходим в корень сайта на локалке
an43@lamp7:~$ ls
consuldev order-fix-log.txt upd.txt
оказывается мы находимся в ссылке на виртуалку
an43@lamp7:~$ pwd
/home/an43
переходим в ссылку
an43@lamp7:~$ cd /media/sf_work/
видим наш архив базы
an43@lamp7:/media/sf_work$ ls
apache-sites db_test_2019_06_18.sql nginx-sites Seiko.xls test.xls
запускаем разархивирование в базу consul_site_db2 на виртуалке
an43@lamp7:/media/sf_work$ mysql -u root -p6yhuji9 consul_site_db2 < db_test_2019_06_18.sql
mysql -u root --password="("]m?iqhGKTjgi6eWU?Mt sitemanager < ind777.sql
mysql -u u0741309_aaa --password=Hromos44 u0741309_aaa < ind777.sql
mysql -u root --password="("]m?iqhGKTjgi6eWU?Mt sitemanager < ind777.sql
mysql -u u0741309_aaa --password=Hromos44 u0741309_aaa < ind777.sql
Загрузка рисунков
360 круговая диарама
http://avia3.ru/moto.php
сайт домен разработки консул
http://u0715817.cp.regruhosting.ru/product-details.html
загрузка рисунков определенного размера
https://www.consul.ru/files/products/r1040_132_012_1.400x400w.jpg
img360
https://www.consul.ru/files/i360/frederique-constant-fc-285v5b4/10.jpg
http://avia3.ru/moto.php
сайт домен разработки консул
http://u0715817.cp.regruhosting.ru/product-details.html
загрузка рисунков определенного размера
https://www.consul.ru/files/products/r1040_132_012_1.400x400w.jpg
img360
https://www.consul.ru/files/i360/frederique-constant-fc-285v5b4/10.jpg
Подписаться на:
Сообщения (Atom)