Windows Apache 環境で SSL 証明書を展開して、Web サイトを https 対応にする方法

Windows Apache 環境で SSL 証明書を展開して、Web サイトを https 対応にする方法

SSL 証明書の使用についてはここでは説明しません。SSL 証明書を導入する必要がある友人は、すでに理解しているはずです。早速本題に入りましょう。

Apache をインストールします。Apache をダウンロードしてインストールするときは、SSL バージョンの Apache インストーラをダウンロードしてください。

最初のステップは、もちろん証明書を取得することです。

Tencent Cloud に申請しましたが、わずか数分で完了しました。

ドメイン名の検証に合格したら、証明書をダウンロードするだけです

image.png

1_root_bundle.crt (証明書チェーン ファイル)

2_www.domain.com_cert.crt (証明書ファイル)

3_www.domain.com.key (秘密鍵ファイル)

環境に証明書を配置します。apache/cert に配置しました。cert フォルダは自分で作成しました。

2番目のステップは、サーバー環境の構成を変更することです

まず、[LoadModule ssl_module modules/mod_ssl.so] という行を見つけます。先頭に # がある場合は削除します。ない場合は変更する必要がないので、そのままにしておきます。

2番目: [Include conf/extra/httpd-ssl.conf] の行を見つけます。先頭に # がある場合は削除します。ない場合は変更する必要がないので、そのままにしておきます。

#次の3行は証明書ファイルの設定です。パスと対応するファイル名を変更するように注意してください。混乱しないようにしてください。

SSL証明書ファイル "/phpStudy/PHPTutorial/Apache/cert/2_tktx.nichousha.cc.crt"

SSL証明書キーファイル "/phpStudy/PHPTutorial/Apache/cert/3_tktx.nichousha.cc.key"

SSL証明書チェーンファイル "/phpStudy/PHPTutorial/Apache/cert/1_root_bundle.crt"

cart+f 次の名前を1つずつ検索して置き換えます

もう一つは、サイト ディレクトリを変更することです。今日、私はこの小さな落とし穴に足を踏み入れました。

ファイル内の多くのサイトパスが間違っているため、修正する必要があります

SSLオプション +標準環境変数

</ファイル一致>

<ディレクトリ "C:\phpStudy\WWW">

たとえば、WWW のパスは \phpStudy\PHPTutorial\WWW です。私は PHPSTUDY の新しいバージョンを使用しているので、パスは \phpStudy\PHPTutorial\WWW です。間違った場所を検索して、一括で変更するだけです。

ステップ3 301リダイレクトを設定する

.htaccessを使用します

image.png

リライトベース /

書き換え条件 %{SERVER_PORT} !^443$

書き換えルール ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

この段落を追加するだけです。

image.png

全体のプロセスは比較的簡単です。ご質問がある場合は、メッセージを残してください。コメントはメールで送信されますので、すぐに返信します。

以下は他のネットユーザーからのコメントです

1. 準備

1) Apache + SSL を設定する前に、次の操作を行う必要があります。

Apache をインストールします。Apache をダウンロードしてインストールするときは、SSL バージョンの Apache インストーラをダウンロードしてください。

ssl に必要なファイルは次の場所にあります。

[Apacheインストールディレクトリ]/modules/ mod_ssl.so

[Apache インストールディレクトリ]/bin/ openssl.exe、libeay32.dll、ssleay32.dll、openssl.cnf

[Apacheインストールディレクトリ]/conf/ openssl.cnf

SSL 証明書を作成します (一部の統合環境には openssl が付属していますが、bin ディレクトリには openssl.cnf がありません。conf の下の openssl.cnf を bin ディレクトリにコピーする必要がありますが、全体的な原則は同じです)

2) Windows 環境では、まず OpenSSL 環境変数を設定する必要があります。

コマンドset OPENSSL_CONF=..\conf\openssl.cnfを実行します。

CMD を開き、Apache インストール ディレクトリの下の bin ディレクトリに移動します。

ステップ1 : コマンドopenssl genrsa 1024 >server.keyを実行します。

注: RSA キー ペアのデフォルトの長さは 1024 で、これは 2 の整数乗です。キーの長さが長いほど、セキュリティが高くなります。

キー server.key が生成されたら、手順 2 に進みます。

ステップ 2: 署名されていない server.csr を生成し、bin ディレクトリでコマンドの実行を続行します。

openssl req -new -config openssl.cnf -key server.key >server.csr

注意: -config .openssl.cnf パラメータを追加しないと、「.../ssl/openssl.cnf から構成情報をロードできません」というメッセージが表示されることがよくあります。

次に、一連のパラメータを入力するよう求められます。

国名 (2 文字コード) [AU]:CN ISO 国コード (2 文字のみサポートされます)

州または県名(フルネーム)[Some-State]:ZJ Province

地域名(例:市) []:HZ 市

組織名(例:会社):

組織単位名(例:セクション) []:yiban 組織単位名

共通名(例:あなたの名前)[]: localhost:80 証明書を申請するためのドメイン名(httpd.confのserverNameと一致させることが推奨されます)

メールアドレス []:[email protected] 管理者メールアドレス

証明書リクエストとともに送信される次の「追加」属性を入力してください。チャレンジパスワード []: 1234Exchange キー

オプションの会社名 []:CD

注意: 共通名は httpd.conf の serverName と一致している必要があります。一致していないと Apache が起動しない可能性があります。

(Apache を起動すると、エラー メッセージが表示されます: server RSA certificate CommonName (CN) `Kedou' はサーバー名と一致しません。) 署名された server.csr 構成を完了します。

ステップ3:

サーバー証明書ファイル server.crt に署名します。

bin/ディレクトリでコマンドを実行します。

openssl req -x509 -days 5000 -config openssl.cnf -key server.key -in server.csr >server.crt

注: これは、手順 1 と 2 のキーと証明書要求を使用して、証明書 server.crt を生成します。-days パラメータは、証明書の有効期間を日数で示します。x509 は、生成された証明書が X.509 証明書であることを示します。

ステップ4:

bin ディレクトリで、server.crt、server.csr、server.key ファイルを見つけて、それらを Apache conf ディレクトリに切り取ります。

ステップ5:

httpd.conf を設定します。Apache conf\extra ディレクトリの httpd_ssl.conf ファイルは SSL 設定に関するもので、httpd.conf の一部です。

httpd.conf に次の 2 行を追加します (ファイルの前にコメント "#" 記号がある場合は削除します)。

LoadModule ssl_module モジュール/mod_ssl.so

conf/extra/httpd-ssl.conf をインクルードする

ステップ6:

(注:同じ部分は省略)

conf\extraディレクトリで、httpd_ssl.confを編集します。

443を聴く

SSLPassPhraseDialog組み込み

SSLセッションキャッシュ "dbm:c:/Apache24/logs/ssl_scache"

#SSLセッションキャッシュ "shmcb:c:/Apache24/logs/ssl_scache(512000)"

(上記2種類はご自身で監視してください。どちらかがサーバーの起動に失敗する場合は、もう一方に切り替える必要があります)

SSLセッションキャッシュタイムアウト 300

<仮想ホスト www.my.com:443>
#ドキュメントルート "D:/wamp/bin/apache/apache2.4.9/htdocs"
ドキュメントルート「C:/wamp/www/hxq」
サーバー名 www.my.com:443
サーバーエイリアスmy.com:443
サーバー管理者 [email protected]
ディレクトリインデックス index.html index.htm index.php default.php app.php u.php
エラーログ ログ/example_error.log
カスタムログログ/example_access.log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
SSLエンジンオン
SSL証明書ファイル "C:/wamp/bin/apache/apache2.4.9/conf/server.crt"
SSL証明書キーファイル "C:/wamp/bin/apache/apache2.4.9/conf/server.key"
#SSL証明書チェーンファイル "C:/upupw/Apache2/conf/1_root_bundle.crt"
<FilesMatch "\.(shtml|phtml|php)$">
SSLオプション +標準環境変数
</ファイル一致>
ブラウザマッチ「MSIE [2-5]」\
nokeepalive ssl-unclean-shutdown \
ダウングレード-1.0 強制レスポンス-1.0
<ディレクトリ "C:/wamp/www/hxq">
オプション FollowSymLinks
すべて上書きを許可
許可、拒否の命令
すべて許可
</ディレクトリ>
</仮想ホスト>

最も可能性の高い問題は、http_ssl.conf 内のログのパスの問題です。物理パスに従って設定することをお勧めします。

ステップ7:

Apache をデバッグして実行します (Apache 用)。 xampp、wampserver、phpstudy などの統合環境で Apache サーバーを起動すると、サーバーでどのような問題が発生したかがわからない場合があります。Apache/logs のログを確認することをお勧めします。これに基づいて、cmd コマンドラインを使用して bin ディレクトリで httpd コマンドを実行します。エラーが報告されない場合は、サーバーが正常に動作していることを意味します。それ以外の場合は、プロンプトに従って変更を加えます。

2. テスト実行

apahce サービスを再起動し、https://www.my.com/ にアクセスします。完了です。

===========エラー集約が発生しました==========

1. 「c:/apache/conf/extra/httpd-ssl.conf の 80 行目に構文エラーがあります:ErrorLog には 1 つの引数が必要です。エラー ログのファイル名です」または「c:/apache/conf/extra/httpd-ssl.conf の 99 行目に構文エラーがあります:SSLCertificateFile には 1 つの引数が必要です。SSL サーバー証明書ファイル ('/path/to/file' -PEM または DER でエンコード) です」

解決策: ファイルパスに二重引用符を追加する

2、「C:/apache/conf/extra/httpd-ssl.conf:SSLSessionCache の 76 行目に構文エラーがあります: 'shmcb' セッション キャッシュはサポートされていません (既知の名前: )。適切な socache モジュール (mod_socache_shmcb?) をロードする必要がある可能性があります。」

解決:

httpd.confを開き、

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so を見つける

前のコメントを削除します。

<<:  MySQLがbinlogファイルを手動で登録し、マスタースレーブ異常を引き起こす理由

>>:  WeChatアプレットのスクロールビューが左右連動効果を実現

推薦する

Reactでファイルパスエイリアスを素早く設定する方法

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。F...

Mysql クエリの結果セットを JSON データに変換するサンプル コード

Mysql はクエリ結果セットを JSON データに変換します 序文 学生テーブル 学生スコアテーブ...

優れたWebフォームデザイン事例20選

ソフィー・ハルダッククライドキー埠頭 37 東ソープボックス Rxバランス EEハーバー対比 SVN...

MySQL セレクトキャッシュメカニズムの使用に関する詳細な説明

MySQL クエリ キャッシュはデフォルトでオンになっています。ある程度、クエリの効果は向上しますが...

列名を知らなくてもMySQLインジェクションを詳細に解説

序文最近、穴を掘ってスペースを作っているだけなので、心が空っぽになっているように感じます。テクノロジ...

Mysql 5.7.19 無料インストール バージョンで遭遇した落とし穴 (コレクション)

1. 公式ウェブサイトから 64 ビットの zip ファイルをダウンロードします。 2. インスト...

Linux での MySQL 5.7.17 の最新安定バージョンのインストール チュートリアル

ソースコードを通じて Linux に最新の安定バージョンの MySQL をインストールします: my...

VMware15 の Deepin インストール詳細チュートリアル (画像とテキスト)

序文Deepin のユーザー インターフェイスは、使用時に非常に見栄えがします。インターフェイス効果...

CentOs でノード バージョンを手動でアップグレードする方法

1. 対応するNode.jsパッケージを見つけます。https://nodejs.org/downl...

ftp は SSH 経由で Linux にリモート接続します

まず Linux に ssh をインストールします。例として Centos を使用します。ポータル:...

Docker ポート マッピングと外部アクセス不可の問題

Docker コンテナはサービスを提供し、ポート 8888 をリッスンします。外部からアクセスできる...

nginx.pid を開く際の失敗と無効の解決策

目次1. 問題の説明2. 問題分析3. 解決策解決策1: ディレクトリを作成する解決策2: 構成ファ...

react-color を使用してフロントエンドのカラーピッカーを実装する方法

背景次の図に示すように、 react-color を使用してフロントエンド インターフェースのカラー...

MySQL 8.0 の新しいリレーショナル データベース機能の詳細な説明

序文MySQL 8.0 の最新バージョンは 8.0.4 rc であり、正式版は近日中にリリースされる...

mysql 5.7.5 m15 winx64.zip インストール チュートリアル

win7 64 ビットで mysql-5.7.5-m15-winx64 をインストールして構成する方...