Бот для мониторинга веб-сервисов за полчаса: telegram + bash + cron

Running

  1. Obtain a secret, used to connect to telegram servers.
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
  1. Obtain current telegram configuration. It can change (occasionally), so we encourage you to update it once per day.
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
  1. Generate a secret to be used by users to connect to your proxy.
head -c 16 /dev/urandom | xxd -ps
  1. Run :
./mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 1

… where:

  • is the username. calls to drop privilegies.
  • is the port, used by clients to connect to the proxy.
  • is the local port. You can use it to get statistics from . Like . You can only get this stat via loopback.
  • is the secret generated at step 3. Also you can set multiple secrets: .
  • and are obtained at steps 1 and 2.
  • is the number of workers. You can increase the number of workers, if you have a powerful server.

Also feel free to check out other options using .

  1. Generate the link with following schema: (or let the official bot generate it for you).
  2. Set received tag with arguments:
  3. Enjoy.

Notes and restrictions

  1. Message formatting (both Markdown and HTML) is disabled. You can easily add argument to function to enable it.example:
bot.send_message(message.chat.id, "Please click on (www.google.com)to search on Google",parse_mode="Markdown")
  1. You(Admins) should always use «reply» function, because bot will check of selected «message to reply».
  2. Storage is needed to save key-value pairs. First, I intended to delete which I’ve already answered, but then I decided to remove this, so you can answer any message from certain user and multiple times.
  3. Supported message types in reply: , , , , , , , .
  4. To block a user simply type and to unblock a user simply type
  5. If you dont need these features then you can simply use the original version of the bot which was made by Groosha. Open the terminal and enter
  6. All the text files are mentioned in config.py except blank.txt which is used somewhere in between the code.
    ** I will not recommend you to change the name or the location of the text files. But it’s up to you! **
  7. You can use the command to view all the commands which you can use an admin

Что такое Serverless в самом бытовом понимании?

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


В чем преимущества такого подхода?

Безопасность

Вы получаете безопасное изолированное окружение с последней версией компилятора / интерпретатора.

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

Стабильность и отказоустойчивость

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

Цена, особенно в условиях домашних малонагруженных проектов

При тарификации учитывается объём памяти, резервируемый под функцию за время её исполнения и количество вызовов. Согласно 10 000 000 запусков функции, работающей 800ms с ограничением по памяти 512мб будут стоить 3 900₽.

Да, 4.6 копеек. Плюс я не буду тратить время на настройки, что ещё приятней. Никаких правил для pm2, никакой актуализации Dockerfile или окружения, и вишенкой на торте — SLA 99,9.

Из пока нерешённых задач (но, полагаю, это вопрос времени) — привязка внешних доменов, а так же тонкая настройка http методов, которые служат триггером функции. Сейчас http триггер срабатывает на любой из DELETE, GET, HEAD, OPTIONS, PATCH, POST или PUT запросов на авто-генерируемую точку входа типа https://functions.yandexcloud.net/xxxxxxxxxxxxxxxx.

Из хороших новостей — это полноценный https, который отвечает всем требованиям Telegram для работы с api через webHooks. Но у AWS Lambda есть дополнения в виде API Gateway, да и сама настройка триггера шире, если вам это нужно.

Очевидное ограничение самого serverless подхода, не зависимо от платформы — пользоваться приходится ровно тем, что дают. Написать код на неподдерживаемых языках программирования или использовать нестандартные параметры компилятора/интерпретатора вы не сможете. Также возможны дополнительные призванные защитить всех участников процесса разработки.

Как создать .js файл, чтобы работать в Яндекс.Облаке?

Краткий гайд через веб интерфейс:

  • создаём Функцию
  • создаём в веб интерфейсе файл с любым именем и расширением js
  • выбираем интерпретатор — nodejs10 или nodejs12
  • в файле пишем функцию с одним параметром в exports.myFunction (ну, в произвольное поле в exports)
  • указываем таймаут работы функции, оперативную память (128МБ-1024МБ с шагом в 128МБ), точку входа (имяфайла.myFunction)
  • делаем функцию публичной

Функция написанная в файле может:

Получить данные http запроса через входящий параметр:

функция не получает request в чистом виде, и конечно же не управляет ходом запроса — она получает в своём единственном параметре с информацией о запросе:

Как поднять собственный MTProto server для Telegram?

: поддерживает спонсорские каналы; поддерживает IPv6; прост в установке.

: есть проблемы с клиентами Android (не отправляются сообщения); десктоп-клиенты Telegram работают отлично.

Java: требуется JRE 8 или JDK 8 (на версии 9 и выше не будет работать).

: использует много ресурсов процессора; поддерживает спонсорские каналы; работает стабильно.

Системные требования:

  • VDS/VPS сервер, находящийся в любой стране, в которой Телеграм не заблокирован;
  • Linux OS: Ubuntu 14.04+, CentOS 6+, Debian 8+;
  • корневой доступ через SSH.

Создаем MTProto server

Нам нужен только сервер с установленным Docker’ом и доступом в интернет, и 443-ий порт должен быть свободным. Для запуска прокси все, что вам нужно сделать, это выполнить команду:

Журнал контейнера доступен по команде:

Он будет содержать сведения, которые потребуются для вставки в приложение Телеграмм при регистрации вашего прокси в боте @MTProxyBot:

Параметры IP и port могут быть определены ошибочно — проследите за этим, и при необходимости исправьте. Также, обязательно исправьте ссылки, если вы решите запустить прокси-сервер на другом порту, отличном от 443.

Secret — это обязательный параметр конфигурации: он будет создан автоматически при запуске контейнера, и будет сохраняться при обновлении.

Регистрируем свой MTProto прокси в Телеграме

После того, как ваш MTProxy сервер запущен, откройте в мессенджере диалог с @MTProxybot и зарегистрируйте свой прокси в Телеграме, чтобы получить доступ к статистике использования и монетизации. @MTProxybot — это официальный бот для владельцев MTProxy. Порядок действий:

  1. Отправить команду /start.
  2. Затем команду /newproxy — для регистрации нового МТПрото.
  3. Отправить адрес в формате «host:port».

Настраиваем конфигурацию MTProxy server

Если необходимо задать секретный ключ вручную (например, при развертывании нескольких прокси-серверов с балансировкой нагрузки DNS), можно задать переменную SECRET в виде 16-байтового числа в шестнадцатеричной системе:

Для символов необходимо использовать нижний регистр. Для генерации числа воспользуйтесь одной из Linux-команд:

MTProto поддерживает задание сразу нескольких различных ключей для пользовательских групп, максимум до 16 параметров. Можно указать их явно в переменной SECRET в виде шестнадцатеричных строк, разделенных запятыми:

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

Обновление MTProto server

Команда Telegram пообещала вносить минимальное количество изменений, но тем не менее, рекомендуется делать обновление прокси-сервера один раз в сутки. Перечень команд для обновления:

Статистика и производительность MTProxy

Один рабочий процесс рассчитан на обработку нескольких десятков тысяч клиентских подключений. Для оптимальной производительности это количество искусственно ограничено до 60 000 соединений на одно ядро ЦПУ. По умолчанию запускается два рабочих процесса. Если ваш прокси рассчитан на большое число подключений, обязательно настройте WORKERS переменную, увеличив количество процессов. Однако не стоит запускать прокси-процессов больше, чем ядер в процессоре.

Можно просматривать основные метрики работы MTProto прокси сервера на localhost:

Если прокси-сервер запущен с параметром , для получения статистики выполните команду:

Если прокси запущен с пробрасыванием портов, выполните другую команду:

Доступные метрики:

  • ready_targets — количество основных серверов Telegram, к которым будет пытаться подключиться прокси.
  • active_targets — количество основных серверов Telegram, к которым фактически подключен прокси. Должна быть равна ready_targets.
  • total_special_connections — количество входящих клиентских подключений к MTProxy.
  • total_max_special_connections — верхний предел входящих подключений к MTProxy. Равен 60 000, умноженные на количество процессов WORKERS.

NETWORK OPTIONS

CURLOPT_URL

URL to work on. See CURLOPT_URL

CURLOPT_PATH_AS_IS

Disable squashing /../ and /./ sequences in the path. See CURLOPT_PATH_AS_IS

CURLOPT_PROTOCOLS

Allowed protocols. See CURLOPT_PROTOCOLS

CURLOPT_REDIR_PROTOCOLS

Protocols to allow redirects to. See CURLOPT_REDIR_PROTOCOLS

CURLOPT_DEFAULT_PROTOCOL

Default protocol. See CURLOPT_DEFAULT_PROTOCOL

CURLOPT_PROXY

Proxy to use. See CURLOPT_PROXY

CURLOPT_PRE_PROXY

Socks proxy to use. See CURLOPT_PRE_PROXY

CURLOPT_PROXYPORT

Proxy port to use. See CURLOPT_PROXYPORT

CURLOPT_PROXYTYPE

Proxy type. See CURLOPT_PROXYTYPE

CURLOPT_NOPROXY

Filter out hosts from proxy use. CURLOPT_NOPROXY

CURLOPT_HTTPPROXYTUNNEL

Tunnel through the HTTP proxy. CURLOPT_HTTPPROXYTUNNEL

CURLOPT_CONNECT_TO

Connect to a specific host and port. See CURLOPT_CONNECT_TO

CURLOPT_SOCKS5_AUTH

Socks5 authentication methods. See CURLOPT_SOCKS5_AUTH

CURLOPT_SOCKS5_GSSAPI_SERVICE

Socks5 GSSAPI service name. CURLOPT_SOCKS5_GSSAPI_SERVICE

CURLOPT_SOCKS5_GSSAPI_NEC

Socks5 GSSAPI NEC mode. See CURLOPT_SOCKS5_GSSAPI_NEC

CURLOPT_PROXY_SERVICE_NAME

Proxy authentication service name. CURLOPT_PROXY_SERVICE_NAME

CURLOPT_HAPROXYPROTOCOL

Send an HAProxy PROXY protocol v1 header. See CURLOPT_HAPROXYPROTOCOL

CURLOPT_SERVICE_NAME

Authentication service name. CURLOPT_SERVICE_NAME

CURLOPT_INTERFACE

Bind connection locally to this. See CURLOPT_INTERFACE

CURLOPT_LOCALPORT

Bind connection locally to this port. See CURLOPT_LOCALPORT

CURLOPT_LOCALPORTRANGE

Bind connection locally to port range. See CURLOPT_LOCALPORTRANGE

CURLOPT_DNS_CACHE_TIMEOUT

Timeout for DNS cache. See CURLOPT_DNS_CACHE_TIMEOUT

CURLOPT_DNS_USE_GLOBAL_CACHE

OBSOLETE Enable global DNS cache. See CURLOPT_DNS_USE_GLOBAL_CACHE

CURLOPT_DOH_URL

Use this DOH server for name resolves. See CURLOPT_DOH_URL

CURLOPT_BUFFERSIZE

Ask for alternate buffer size. See CURLOPT_BUFFERSIZE

CURLOPT_PORT

Port number to connect to. See CURLOPT_PORT

CURLOPT_TCP_FASTOPEN

Enable TFO, TCP Fast Open. See CURLOPT_TCP_FASTOPEN

CURLOPT_TCP_NODELAY

Disable the Nagle algorithm. See CURLOPT_TCP_NODELAY

CURLOPT_ADDRESS_SCOPE

IPv6 scope for local addresses. See CURLOPT_ADDRESS_SCOPE

CURLOPT_TCP_KEEPALIVE

Enable TCP keep-alive. See CURLOPT_TCP_KEEPALIVE

CURLOPT_TCP_KEEPIDLE

Idle time before sending keep-alive. See CURLOPT_TCP_KEEPIDLE

CURLOPT_TCP_KEEPINTVL

Interval between keep-alive probes. See CURLOPT_TCP_KEEPINTVL

CURLOPT_UNIX_SOCKET_PATH

Path to a Unix domain socket. See CURLOPT_UNIX_SOCKET_PATH

CURLOPT_ABSTRACT_UNIX_SOCKET

Path to an abstract Unix domain socket. See CURLOPT_ABSTRACT_UNIX_SOCKET

Unix and Linux curl command with proxy syntax

The syntax is:

## Set the proxy address of your uni/company/vpn network ## 
export http_proxy=http://your-ip-address:port
 
## http_proxy with username and password 
export http_proxy=http://user:password@your-proxy-ip-address:port
 
## HTTPS version ##
export https_proxy=https://your-ip-address:port
export https_proxy=https://user:password@your-proxy-ip-address:port

Another option is to pass the -x option to the curl command. To use the specified proxy:

curl -x <protocol://user:password@proxyhost:port> url
--proxy <protocol://user:password@proxyhost:port> url
--proxy http://user:password@Your-Ip-Here:Port url
-x http://user:password@Your-Ip-Here:Port url

HTTP OPTIONS

CURLOPT_AUTOREFERER

Automatically set Referer: header. See CURLOPT_AUTOREFERER

CURLOPT_ACCEPT_ENCODING

Accept-Encoding and automatic decompressing data. See CURLOPT_ACCEPT_ENCODING

CURLOPT_TRANSFER_ENCODING

Request Transfer-Encoding. See CURLOPT_TRANSFER_ENCODING

CURLOPT_FOLLOWLOCATION

Follow HTTP redirects. See CURLOPT_FOLLOWLOCATION

CURLOPT_UNRESTRICTED_AUTH

Do not restrict authentication to original host. CURLOPT_UNRESTRICTED_AUTH

CURLOPT_MAXREDIRS

Maximum number of redirects to follow. See CURLOPT_MAXREDIRS

CURLOPT_POSTREDIR

How to act on redirects after POST. See CURLOPT_POSTREDIR

CURLOPT_PUT

Issue an HTTP PUT request. See CURLOPT_PUT

CURLOPT_POST

Issue an HTTP POST request. See CURLOPT_POST

CURLOPT_POSTFIELDS

Send a POST with this data. See CURLOPT_POSTFIELDS

CURLOPT_POSTFIELDSIZE

The POST data is this big. See CURLOPT_POSTFIELDSIZE

CURLOPT_POSTFIELDSIZE_LARGE

The POST data is this big. See CURLOPT_POSTFIELDSIZE_LARGE

CURLOPT_COPYPOSTFIELDS

Send a POST with this data — and copy it. See CURLOPT_COPYPOSTFIELDS

CURLOPT_HTTPPOST

Multipart formpost HTTP POST. See CURLOPT_HTTPPOST

CURLOPT_REFERER

Referer: header. See CURLOPT_REFERER

CURLOPT_USERAGENT

User-Agent: header. See CURLOPT_USERAGENT

CURLOPT_HTTPHEADER

Custom HTTP headers. See CURLOPT_HTTPHEADER

CURLOPT_HEADEROPT

Control custom headers. See CURLOPT_HEADEROPT

CURLOPT_PROXYHEADER

Custom HTTP headers sent to proxy. See CURLOPT_PROXYHEADER

CURLOPT_HTTP200ALIASES

Alternative versions of 200 OK. See CURLOPT_HTTP200ALIASES

CURLOPT_COOKIE

Cookie(s) to send. See CURLOPT_COOKIE

CURLOPT_COOKIEFILE

File to read cookies from. See CURLOPT_COOKIEFILE

CURLOPT_COOKIEJAR

File to write cookies to. See CURLOPT_COOKIEJAR

CURLOPT_COOKIESESSION

Start a new cookie session. See CURLOPT_COOKIESESSION

CURLOPT_COOKIELIST

Add or control cookies. See CURLOPT_COOKIELIST

CURLOPT_ALTSVC

Specify the Alt-Svc: cache file name. See CURLOPT_ALTSVC

CURLOPT_ALTSVC_CTRL

Enable and configure Alt-Svc: treatment. See CURLOPT_ALTSVC_CTRL

CURLOPT_HTTPGET

Do an HTTP GET request. See CURLOPT_HTTPGET

CURLOPT_REQUEST_TARGET

Set the request target. CURLOPT_REQUEST_TARGET

CURLOPT_HTTP_VERSION

HTTP version to use. CURLOPT_HTTP_VERSION

CURLOPT_HTTP09_ALLOWED

Allow HTTP/0.9 responses. CURLOPT_HTTP09_ALLOWED

CURLOPT_IGNORE_CONTENT_LENGTH

Ignore Content-Length. See CURLOPT_IGNORE_CONTENT_LENGTH

CURLOPT_HTTP_CONTENT_DECODING

Disable Content decoding. See CURLOPT_HTTP_CONTENT_DECODING

CURLOPT_HTTP_TRANSFER_DECODING

Disable Transfer decoding. See CURLOPT_HTTP_TRANSFER_DECODING

CURLOPT_EXPECT_100_TIMEOUT_MS

100-continue timeout. See CURLOPT_EXPECT_100_TIMEOUT_MS

CURLOPT_TRAILERFUNCTION

Set callback for sending trailing headers. See CURLOPT_TRAILERFUNCTION

CURLOPT_TRAILERDATA

Custom pointer passed to the trailing headers callback. See CURLOPT_TRAILERDATA

CURLOPT_PIPEWAIT

Wait on connection to pipeline on it. See CURLOPT_PIPEWAIT

CURLOPT_STREAM_DEPENDS

This HTTP/2 stream depends on another. See CURLOPT_STREAM_DEPENDS

CURLOPT_STREAM_DEPENDS_E

This HTTP/2 stream depends on another exclusively. See CURLOPT_STREAM_DEPENDS_E

CURLOPT_STREAM_WEIGHT

Set this HTTP/2 stream’s weight. See CURLOPT_STREAM_WEIGHT

Linux use curl command with proxy

First set the http_proxy:

## proxy server, 202.54.1.1, port: 3128, user: foo, password: bar ##
export http_proxy=http://foo:bar@202.54.1.1:3128
export https_proxy=$http_proxy
## Use the curl command ##
curl -I https://www.cyberciti.biz
curl -v -I https://www.cyberciti.biz

Sample outputs:

* Rebuilt URL to: www.cyberciti.biz/
*   Trying 202.54.1.1...
* Connected to 1202.54.1.1 (202.54.1.1) port 3128 (#)
* Proxy auth using Basic with user 'foo'
> HEAD HTTP://www.cyberciti.biz/ HTTP/1.1
> Host: www.cyberciti.biz
> Proxy-Authorization: Basic x9VuUml2xm0vdg93MtIz
> User-Agent: curl/7.43.0
> Accept: */*
> Proxy-Connection: Keep-Alive
> 
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Server: nginx
Server: nginx
< Date: Sun, 17 Jan 2016 11:49:21 GMT
Date: Sun, 17 Jan 2016 11:49:21 GMT
< Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
< Vary: Accept-Encoding
Vary: Accept-Encoding
< X-Whom: Dyno-l1-com-cyber
X-Whom: Dyno-l1-com-cyber
< Vary: Cookie
Vary: Cookie
< Link: <http://www.cyberciti.biz/wp-json/>; rel="https://api.w.org/"
Link: <http://www.cyberciti.biz/wp-json/>; rel="https://api.w.org/"
< X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
< X-Content-Type-Options: nosniff
X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
X-XSS-Protection: 1; mode=block
< X-Cache: MISS from server1
X-Cache: MISS from server1
< X-Cache-Lookup: MISS from server1:3128
X-Cache-Lookup: MISS from server1:3128
< Connection: keep-alive
Connection: keep-alive
 
< 
* Connection # to host 10.12.249.194 left intact

In this example, I’m downloading a pdf file: OR use the -x option: Sample outputs:
Fig.01: curl in action (click to enlarge)

SSL and SECURITY OPTIONS

CURLOPT_SSLCERT

Client cert. See CURLOPT_SSLCERT

CURLOPT_SSLCERT_BLOB

Client cert memory buffer. See CURLOPT_SSLCERT_BLOB

CURLOPT_PROXY_SSLCERT

Proxy client cert. See CURLOPT_PROXY_SSLCERT

CURLOPT_PROXY_SSLCERT_BLOB

Proxy client cert memory buffer. See CURLOPT_PROXY_SSLCERT_BLOB

CURLOPT_SSLCERTTYPE

Client cert type. See CURLOPT_SSLCERTTYPE

CURLOPT_PROXY_SSLCERTTYPE

Proxy client cert type. See CURLOPT_PROXY_SSLCERTTYPE

CURLOPT_SSLKEY

Client key. See CURLOPT_SSLKEY

CURLOPT_SSLKEY_BLOB

Client key memory buffer. See CURLOPT_SSLKEY_BLOB

CURLOPT_PROXY_SSLKEY

Proxy client key. See CURLOPT_PROXY_SSLKEY

CURLOPT_PROXY_SSLKEY_BLOB

Proxy client key. See CURLOPT_PROXY_SSLKEY_BLOB

CURLOPT_SSLKEYTYPE

Client key type. See CURLOPT_SSLKEYTYPE

CURLOPT_PROXY_SSLKEYTYPE

Proxy client key type. See CURLOPT_PROXY_SSLKEYTYPE

CURLOPT_KEYPASSWD

Client key password. See CURLOPT_KEYPASSWD

CURLOPT_PROXY_KEYPASSWD

Proxy client key password. See CURLOPT_PROXY_KEYPASSWD

CURLOPT_SSL_ENABLE_ALPN

Enable use of ALPN. See CURLOPT_SSL_ENABLE_ALPN

CURLOPT_SSL_ENABLE_NPN

Enable use of NPN. See CURLOPT_SSL_ENABLE_NPN

CURLOPT_SSLENGINE

Use identifier with SSL engine. See CURLOPT_SSLENGINE

CURLOPT_SSLENGINE_DEFAULT

Default SSL engine. See CURLOPT_SSLENGINE_DEFAULT

CURLOPT_SSL_FALSESTART

Enable TLS False Start. See CURLOPT_SSL_FALSESTART

CURLOPT_SSLVERSION

SSL version to use. See CURLOPT_SSLVERSION

CURLOPT_PROXY_SSLVERSION

Proxy SSL version to use. See CURLOPT_PROXY_SSLVERSION

CURLOPT_SSL_VERIFYHOST

Verify the host name in the SSL certificate. See CURLOPT_SSL_VERIFYHOST

CURLOPT_PROXY_SSL_VERIFYHOST

Verify the host name in the proxy SSL certificate. See CURLOPT_PROXY_SSL_VERIFYHOST

CURLOPT_SSL_VERIFYPEER

Verify the SSL certificate. See CURLOPT_SSL_VERIFYPEER

CURLOPT_PROXY_SSL_VERIFYPEER

Verify the proxy SSL certificate. See CURLOPT_PROXY_SSL_VERIFYPEER

CURLOPT_SSL_VERIFYSTATUS

Verify the SSL certificate’s status. See CURLOPT_SSL_VERIFYSTATUS

CURLOPT_CAINFO

CA cert bundle. See CURLOPT_CAINFO

CURLOPT_PROXY_CAINFO

Proxy CA cert bundle. See CURLOPT_PROXY_CAINFO

CURLOPT_ISSUERCERT

Issuer certificate. See CURLOPT_ISSUERCERT

CURLOPT_ISSUERCERT_BLOB

Issuer certificate memory buffer. See CURLOPT_ISSUERCERT_BLOB

CURLOPT_PROXY_ISSUERCERT

Proxy issuer certificate. See CURLOPT_PROXY_ISSUERCERT

CURLOPT_PROXY_ISSUERCERT_BLOB

Proxy issuer certificate memory buffer. See CURLOPT_PROXY_ISSUERCERT_BLOB

CURLOPT_CAPATH

Path to CA cert bundle. See CURLOPT_CAPATH

CURLOPT_PROXY_CAPATH

Path to proxy CA cert bundle. See CURLOPT_PROXY_CAPATH

CURLOPT_CRLFILE

Certificate Revocation List. See CURLOPT_CRLFILE

CURLOPT_PROXY_CRLFILE

Proxy Certificate Revocation List. See CURLOPT_PROXY_CRLFILE

CURLOPT_CERTINFO

Extract certificate info. See CURLOPT_CERTINFO

CURLOPT_PINNEDPUBLICKEY

Set pinned SSL public key . See CURLOPT_PINNEDPUBLICKEY

CURLOPT_PROXY_PINNEDPUBLICKEY

Set the proxy’s pinned SSL public key. See CURLOPT_PROXY_PINNEDPUBLICKEY

CURLOPT_RANDOM_FILE

Provide source for entropy random data. See CURLOPT_RANDOM_FILE

CURLOPT_EGDSOCKET

Identify EGD socket for entropy. See CURLOPT_EGDSOCKET

CURLOPT_SSL_CIPHER_LIST

Ciphers to use. See CURLOPT_SSL_CIPHER_LIST

CURLOPT_PROXY_SSL_CIPHER_LIST

Proxy ciphers to use. See CURLOPT_PROXY_SSL_CIPHER_LIST

CURLOPT_TLS13_CIPHERS

TLS 1.3 cipher suites to use. See CURLOPT_TLS13_CIPHERS

CURLOPT_PROXY_TLS13_CIPHERS

Proxy TLS 1.3 cipher suites to use. See CURLOPT_PROXY_TLS13_CIPHERS

CURLOPT_SSL_SESSIONID_CACHE

Disable SSL session-id cache. See CURLOPT_SSL_SESSIONID_CACHE

CURLOPT_SSL_OPTIONS

Control SSL behavior. See CURLOPT_SSL_OPTIONS

CURLOPT_PROXY_SSL_OPTIONS

Control proxy SSL behavior. See CURLOPT_PROXY_SSL_OPTIONS

CURLOPT_KRBLEVEL

Kerberos security level. See CURLOPT_KRBLEVEL

CURLOPT_GSSAPI_DELEGATION

Disable GSS-API delegation. See CURLOPT_GSSAPI_DELEGATION

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *