ポート 80 を使用するアプリケーション層プロトコルは、デフォルトで送信に TCP プロトコルを使用します。 http プロトコルは、主に World Wide Web 上のリソースにアクセスするために使用されます。
正式名称は Secure Sockets Layer です。ワーク層とトランスポート層の間では、アプリケーション層プロトコルのネットワーク接続が暗号化され、保護されます。
http プロトコル ssl プロトコル。デフォルトでは、TCP ポート 443 が使用されます。
https プロトコルの作業プロセス:
クライアントが HTTPS リクエストを開始
&emsp ; ユーザーはブラウザに https URL を入力し、サーバーの 443 ポートに接続します
サーバーの構成
を使用するサーバーHTTPS プロトコルは必須です。自分で作成したり、組織に適用したりできる一連のデジタル証明書があります。違いは、自分で発行した証明書はアクセスを続ける前にクライアントによって検証される必要があるのに対し、信頼できる会社によって適用された証明書を使用する場合は、プロンプト ページがポップアップ表示されないことです。この証明書のセットは実際には公開キーと秘密キーのペアです。
サーバーの証明書をクライアントに転送します
証明書は実際には公開キーであり、証明書の発行機関、有効期限など、多くの情報も含まれています。
クライアントはサーバー証明書を解析して検証します
作業のこの部分クライアントの TLS によって完了します。最初に公開鍵が有効であるかどうか (発行権限、有効期限など) が検証されます。異常が見つかった場合は、警告ボックスが表示され、公開鍵に問題があることを示します。証明書。証明書に問題がない場合は、ランダムな値が生成されます。次に、証明書内の公開キーを使用してランダム値を非対称に暗号化します。
クライアントは暗号化された情報をサーバーに送信します
送信のこの部分は次のように暗号化されます。証明書 ランダム値の目的は、サーバーがこのランダム値を取得できるようにすることです。将来的には、クライアントとサーバー間の通信は、このランダム値を通じて暗号化および復号化できるようになります。
サーバーは、クライアントから送信された暗号化された情報をサーバーの秘密キーで復号した後、クライアントから渡されたランダムな値を取得します
サーバーはランダムな値を使用してデータを対称的に暗号化し、それをクライアントに送信します
Apache の実装 Apache はモジュール化された機能ソフトウェアであり、多くの機能は提供するさまざまなモジュールに依存しています。対応するモジュールをロードすることで、対応する機能を実現できます。
プロセス:
1. Apache サーバーの証明書を申請します
2. apache の https 機能を設定します
3. https を確認します
Apache が証明書を申請する方法
1. プライベート CA を構築して証明書を発行する
2. CentOS7 を使用して自己署名証明書を迅速に生成する
[root@ansible certs]# pwd /etc/pki/tls/certs [root@ansible certs]# ls ca-bundle.crt ca-bundle.trust.crt make-dummy-cert Makefile renew-dummy-cert #取消makefile文件中对私钥文件的加密 [root@ansible certs]# vim Makefile %.key: umask 77 ; \ #/usr/bin/openssl genrsa -aes128 $(KEYLEN) > $@ /usr/bin/openssl genrsa $(KEYLEN) > $@ #生成证书 [root@ansible certs]# make Makefile httpds.crt
3. Alibaba Cloud などの Web サイト経由 無料の証明書をダウンロードします (ドメイン名が必要です)
apache の https 機能を設定します
mod_ssl ソフトウェア パッケージをインストールします。 ssl設定ファイルとApacheのモジュールが自動生成されます。
[root@CentOS8 ~]# rpm -ql mod_ssl /etc/httpd/conf.d/ssl.conf #ssl模块的配置文件 /etc/httpd/conf.modules.d/00-ssl.conf #加载ssl模块 /usr/lib/.build-id /usr/lib/.build-id/e6/046e586d8d19fb92e3f8484a62203e841c3e2a /usr/lib/systemd/system/httpd-init.service /usr/lib/systemd/system/httpd.socket.d/10-listen443.conf /usr/lib64/httpd/modules/mod_ssl.so #模块文件 /usr/libexec/httpd-ssl-gencerts /usr/libexec/httpd-ssl-pass-dialog /usr/share/man/man8/httpd-init.service.8.gz /var/cache/httpd/ssl
構成ファイルを変更します:
[root@CentOS8 ~]# vim /etc/httpd/conf.d/ssl.conf SSLCertificateFile /data/apache/apache1.crt #apache的证书文件 SSLCertificateKeyFile /data/apache/apache1.key #apache的私钥文件 SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt #apache的证书链文件 证书链文件:不指定证书链文件,它就不知道这个证书是谁颁发的。证书链就是上级CA的证书
検証:
検証用に Windows ホスト ファイルを設定します
windows的hosts文件位置:C:\Windows\System32\drivers\etc 格式:ip地址 名字
以上がLinux Apache で https を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。