Мы прекращаем поддержку локального API. Подробные сведения и информацию о том, как перейти на облачный API нового поколения, см. в документе Упразднение локального API.

Граница контекста external

/v1/certificates/external

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

Прежде чем начать

Для загрузки и удаления сертификатов нужно использовать аккаунт admin.

Получение

Чтобы получить сертификат ЦС для клиента WhatsApp Business API, выполните запрос GET к этой конечной точке.

Пример

Запрос:

GET /v1/certificates/external/ca

Ответ:

Content-Type: text/plain
Content-Length: content-size

certificate

Если сертификат не найден, возвращается ответ с кодом 404 без текста.

Загрузка

Чтобы загрузить сертификат ЦС, выполните запрос POST. Загружаемый сертификат должен содержать следующие разделы в одном файле в указанном ниже порядке:

  1. Закрытый ключ.
  2. Сертификат.
  3. Один или несколько промежуточных сертификатов ЦС. Клиенту WhatsApp Business API требуется по крайней мере один промежуточный сертификат ЦС, иначе загрузить сертификат не удастся.

Пример

Чтобы загрузить сертификат в клиент WhatsApp Business API, используйте следующий запрос API (задайте для заголовка Content-Type значение text/plain):

POST /v1/certificates/external
  Content-Type: text/plain
  Content-Length: content-size

certificate

При использовании cURL команда выглядит следующим образом:

curl -X POST \
  https://your-webapp-hostname:your-webapp-port/v1/certificates/external \
  -H 'Authorization: Bearer your-auth-token' \
  -H 'Content-Type: text/plain' \
  --data-binary @your-path-to-certificate.pem 

Если сертификат уже существует, он будет перезаписан. После загрузки сертификата необходимо перезапустить веб-сервер (все экземпляры контейнеров Webapp).

Убедитесь, что для обновления используется действительный (правильно заполненный и надлежащий) сертификат. В противном случае веб-сервер не сможет перезапуститься, так как конечная точка API не будет работать. Исправить эту проблему можно будет только вручную.

Ответ на вызов API должен выглядеть следующим образом:

null

Сброс

Если загруженный сертификат недействителен, контейнеры Webapp не инициализируются после перезагрузки, так как конечная точка API не будет доступна. Исправить эту ситуацию можно, сбросив таблицу certs базы данных.

Сброс таблицы certs:

  1. Остановите работу контейнера Webapp:
    docker stop your-webapp-container-id
  2. Подключитесь к MySQL с помощью Docker через командную строку:
    docker exec -it your-mysql-container-id mysql -uroot -p
  3. Введите пароль MySQL, указанный в mysql.conf.
  4. Проверьте, существует ли таблица certs:
    show tables in waweb;
  5. Сбросьте таблицу certs:
    drop table waweb.certs;
  6. Выйдите из MySQL:
    exit;
  7. Перезапустите контейнер Webapp:
    docker restart your-webapp-container-id
  8. Снова войдите в MySQL, как описано выше, и убедитесь, что таблица certs существует.

Удаление

Удаление сертификатов не поддерживается. При необходимости мы добавим такую возможность в будущем.