ホームページ >運用・保守 >Linuxの運用と保守 >Linux Apache で https を設定する方法

Linux Apache で https を設定する方法

王林
王林転載
2023-05-21 19:55:371757ブラウズ

http プロトコル:

ポート 80 を使用するアプリケーション層プロトコルは、デフォルトで送信に TCP プロトコルを使用します。 http プロトコルは、主に World Wide Web 上のリソースにアクセスするために使用されます。

ssl (Secure Sockets Layer) プロトコル:

  正式名称は Secure Sockets Layer です。ワーク層とトランスポート層の間では、アプリケーション層プロトコルのネットワーク接続が暗号化され、保護されます。

https プロトコル:

  http プロトコル ssl プロトコル。デフォルトでは、TCP ポート 443 が使用されます。

Linux Apache で https を設定する方法

https プロトコルの作業プロセス:

Linux Apache で https を設定する方法

  • クライアントが HTTPS リクエストを開始
    &emsp ; ユーザーはブラウザに https URL を入力し、サーバーの 443 ポートに接続します

  • サーバーの構成
      を使用するサーバーHTTPS プロトコルは必須です。自分で作成したり、組織に適用したりできる一連のデジタル証明書があります。違いは、自分で発行した証明書はアクセスを続ける前にクライアントによって検証される必要があるのに対し、信頼できる会社によって適用された証明書を使用する場合は、プロンプト ページがポップアップ表示されないことです。この証明書のセットは実際には公開キーと秘密キーのペアです。

  • サーバーの証明書をクライアントに転送します
      証明書は実際には公開キーであり、証明書の発行機関、有効期限など、多くの情報も含まれています。

  • クライアントはサーバー証明書を解析して検証します
      作業のこの部分クライアントの TLS によって完了します。最初に公開鍵が有効であるかどうか (発行権限、有効期限など) が検証されます。異常が見つかった場合は、警告ボックスが表示され、公開鍵に問題があることを示します。証明書。証明書に問題がない場合は、ランダムな値が生成されます。次に、証明書内の公開キーを使用してランダム値を非対称に暗号化します。

  • クライアントは暗号化された情報をサーバーに送信します
      送信のこの部分は次のように暗号化されます。証明書 ランダム値の目的は、サーバーがこのランダム値を取得できるようにすることです。将来的には、クライアントとサーバー間の通信は、このランダム値を通じて暗号化および復号化できるようになります。

  • #サーバー側の復号情報

      サーバーは、クライアントから送信された暗号化された情報をサーバーの秘密キーで復号した後、クライアントから渡されたランダムな値を取得します

  • サーバーは情報を暗号化して送信します

      サーバーはランダムな値を使用してデータを対称的に暗号化し、それをクライアントに送信します

  • ##クライアントは受信します情報を復号化します
  •   クライアントは、以前に生成されたランダム値を使用して、サービス セグメントによって渡されたデータを復号化し、復号化されたコンテンツを取得します


  • のプロセスhttps:

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 サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。