Files
cpp-httplib/docs-src/pages/ja/tour/05-tls-setup.md
yhirose 885ed54b10 Unify spacing and wording in the Japanese docs pages
Drop the spaces between Japanese text and inline code or alphanumerics
in the tour and the few other pages that still had them, and reword
sentences that read awkwardly. The client compression page now lists
Zstd alongside zlib and Brotli.
2026-10-08 20:39:13 -04:00

3.5 KiB
Raw Blame History

title, order
title order
TLS Setup 5

ここまではHTTP(平文)でやってきましたが、実際のWebではHTTPS(暗号化通信)が当たり前ですよね。cpp-httplibでHTTPSを使うには、TLSライブラリが必要です。

このTourではOpenSSLを使います。最も広く使われていて、情報も豊富です。

OpenSSLのインストール

お使いのOSに合わせてインストールしましょう。

OS インストール方法
macOS Homebrew (brew install openssl)
Ubuntu / Debian sudo apt install libssl-dev
Windows vcpkg (vcpkg install openssl)

コンパイルオプション

TLS機能を有効にするには、CPPHTTPLIB_OPENSSL_SUPPORTマクロを定義してコンパイルします。前章までのコンパイルコマンドに、いくつかオプションが増えます。

# macOS (Homebrew)
clang++ -std=c++17 -DCPPHTTPLIB_OPENSSL_SUPPORT \
    -I$(brew --prefix openssl)/include \
    -L$(brew --prefix openssl)/lib \
    -lssl -lcrypto \
    -framework CoreFoundation -framework Security \
    -o server server.cpp

# Linux
clang++ -std=c++17 -pthread -DCPPHTTPLIB_OPENSSL_SUPPORT \
    -lssl -lcrypto \
    -o server server.cpp

# Windows (Developer Command Prompt)
cl /EHsc /std:c++17 /DCPPHTTPLIB_OPENSSL_SUPPORT server.cpp libssl.lib libcrypto.lib

それぞれのオプションの役割を見てみましょう。

  • -DCPPHTTPLIB_OPENSSL_SUPPORT — TLS機能を有効にするマクロ定義
  • -lssl -lcrypto — OpenSSLのライブラリをリンク
  • -I / -L(macOSのみ)— Homebrew版OpenSSLのパスを指定
  • -framework CoreFoundation -framework Security(macOSのみ)— Keychainからシステム証明書を自動で読み込むために必要です

動作確認

ちゃんと動くか確認してみましょう。httplib::ClientにHTTPSのURLを渡してアクセスするだけのプログラムです。

#define CPPHTTPLIB_OPENSSL_SUPPORT
#include "httplib.h"
#include <iostream>

int main() {
    httplib::Client cli("https://www.google.com");

    auto res = cli.Get("/");
    if (res) {
        std::cout << "Status: " << res->status << std::endl;
    } else {
        std::cout << "Error: " << httplib::to_string(res.error()) << std::endl;
    }
}

コンパイルして実行してみてください。Status: 200と表示されれば、セットアップ完了です。

他のTLSバックエンド

cpp-httplibはOpenSSL以外にも、Mbed TLSとwolfSSLに対応しています。マクロ定義とリンクするライブラリを変えるだけで切り替えられます。

バックエンド マクロ定義 リンクするライブラリ
OpenSSL CPPHTTPLIB_OPENSSL_SUPPORT libssl, libcrypto
Mbed TLS CPPHTTPLIB_MBEDTLS_SUPPORT libmbedtls, libmbedx509, libmbedcrypto
wolfSSL CPPHTTPLIB_WOLFSSL_SUPPORT libwolfssl

Mbed TLSは2.x、3.x、4.xいずれも対応していて、自動判定されます。4.xではlibmbedcryptoがlibtfpsacryptoという名前に変わっているので、リンクするライブラリはそちらに読み替えてください。

このTourではOpenSSLを前提に進めますが、APIはどのバックエンドでも共通です。

次のステップ

TLSの準備ができましたね。次は、HTTPSサイトにリクエストを送ってみましょう。

次: HTTPS Client