ネットワーク セキュリティの重要性が高まるにつれ、SSL (Secure Socket Layer) 伝送方式が Web 開発の分野で一般的に使用される安全な伝送方式になりました。 SSL は、アプリケーション層とトランスポート層の間にセキュリティ層を追加することで、データ送信のセキュリティを確保します。
PHP プログラムでは、SSL 送信を実装するのは比較的簡単です。この記事では、PHPでSSL通信機能を実装する方法を紹介します。
1. SSL セキュリティ証明書の生成
PHP で SSL 送信を実装するには、まず SSL セキュリティ証明書を生成する必要があります。 openssl コマンドを使用して証明書を生成できます。具体的な手順は次のとおりです:
-
ターミナルまたはコマンド ライン ウィンドウを開き、次のコマンドを入力して秘密キー ファイルを生成します:
openssl genrsa -out server.key 2048
ログイン後にコピー
ここで、server.key は秘密キー ファイルの名前、2048 は生成された秘密キー ファイルの長さです。生成された秘密キー ファイルは、デフォルトでは現在のコマンド実行ディレクトリにあります。
次のコマンドを入力して、証明書署名要求 (CSR) を生成します。
openssl req -new -key server.key -out server.csr
ログイン後にコピー
ここで、server.csr は証明書署名要求のファイル名です。
- #証明書を生成します。自己署名証明書を自分で生成することも、何らかの機関を通じて証明書を購入することもできます。ここでは、自己署名証明書を生成し、次のコマンドを入力します。
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
ログイン後にコピー
-days パラメーターは、証明書の有効期間を指定します。365 は、証明書が 1 年間有効であることを意味します。生成された証明書ファイルの名前は、server.crt です。
この時点で、PHP で使用できる SSL セキュリティ証明書が生成されました。
2. HTTPS 送信の実装
次に、単純な PHP Web ページに HTTPS 送信を実装できます。
- PHP コード ファイルを開き、次のコードを追加します。
<?php
$context = stream_context_create([
'ssl' => [
'local_cert' => '/path/to/server.crt', // SSL证书文件路径
'verify_peer' => false, // 不验证证书来源
'verify_peer_name' => false, // 不验证证书名称
]
]);
$https_url = 'https://example.com/';
$content = file_get_contents($https_url, false, $context);
echo $content;
?>
ログイン後にコピー
stream_context_create 関数を使用してコンテキストを作成し、SSL 関連パラメータを構成します。SSL 証明書ファイルのパスを設定します。また、証明書のソースと証明書名を検証しません。 コード ファイルを保存し、server.crt 証明書ファイルとserver.key 証明書ファイルを同じディレクトリに配置します。 - PHP サーバーをローカルで起動します:
php -S localhost:80
ログイン後にコピー
ここで、80 はデフォルトの HTTP ポートです。
ブラウザに URL アドレス https://localhost を入力して、HTTPS Web ページにアクセスします。 -
これまで、SSL 送信機能を PHP で実装してきました。
3. SSL セキュリティの考慮事項
SSL 送信機能は PHP を通じて実装されていますが、実際のアプリケーションでは次のセキュリティの問題を考慮する必要があります。
証明書のセキュリティ: 証明書の生成には秘密鍵が必要となるため、秘密鍵が漏洩しないように秘密鍵のセキュリティを管理する必要があります。 - 証明書の有効期間: 証明書の有効期限が切れると、Web サイトにアクセスできなくなるため、期限内に証明書を更新する必要があります。
- 証明書のソース: 証明書の正当性を確認するには、証明書を当局から購入するか、自分で証明書を発行し、ブラウザにルート証明書をインストールして、証明書のソースを確認する必要があります。証明書。
-
4. 概要
この記事の導入部を通じて、PHP を介して SSL 送信機能を実装する方法を学び、SSL セキュリティに関連する問題について簡単に紹介しました。 Web開発を行う際、データ通信の安全性を確保するためにSSL通信を利用することで、仲介者によるデータの盗難や改ざんを防ぐことができます。
以上がphpでSSL通信を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。