この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 14855|答える: 2

[ウェブサイト構築知識] ディクズについて! (X3.1) https暗号化を有効にする方法

[リンクをコピー]
掲載地 2015/05/30 23:42:13 | | |
時代は常に変化しており、安全な通信への需要は高まっています。 Discuz X3ではhttpsがサポートされていると書かれているので、SSL証明書を受け取った後、すぐにウェブサイトにSSLを追加しました。 しかし追加してみると、多くの場所でhttpsリンクが使われていないことが分かり、何が間違っているのか調べるためにDiscuzのソースコードを確認し始めました。
1. SSL証明書と設定
まず第一に、SSLを有効にするには証明書が必要ですよね? 通常のCAによって発行されたものであれ、本人が署名したものであれ、確実性がないことはありえません。 もしなければ、まず申請してください。 (具体的な方法はGoogleで調べてください。ここでは詳しくは触れません)
2、ディスカズ! 最適化済み2.1. 手順の調整
ディスカズから! X3はhttpsのサポートを追加し、httpsを使ってフォーラムにアクセスすると、フォーラム内のリンクがhttpsになります。 もしほとんどのリンクがすでにhttpsを使っているなら、Discuzが自動的にそれを認識しているということで、このステップを飛ばして直接次のステップに進めます。
Discuzは$_SERVER['HTTPS']でSSLを判断しますが、VPSアーキテクチャの問題(nginx+php-fpm)でこの方法では認識できず、Discuzプログラムの調整が必要です($_SERVER['SERVER_PORT']を使います)。
出典/階級/ディスカズ/discuz_application.php(第187行目):
見つける:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
コードをコピーします
修正内容:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
コードをコピーします
uc_server/avatar.php(約13行目):
見つける:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
コードをコピーします
修正内容:
  1. define('UC_API', strtolower(($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
コードをコピーします
修正後にキャッシュを更新したところ、ほとんどのリンクがhttpsに変わってしまいました。
2.2. 背景設定
また、httpsの使用を妨げるバックグラウンドの設定もあります
バックグラウンドで、UCenter>>ウェブマスターが> UCenterのアクセスアドレスを設定し、httpsで始まるように修正されています
UCenter > アプリケーション管理 > アプリケーションのメインURLが https で始まるように変更されます
さらに、グローバル>ドメイン名設定>バックグラウンドの設定でhttpsが無効になることもあります。前の手順を踏んでも有効にできない場合は、ここで一時的に設定を削除して試してみてください。
3. キャッシュをクリアする
設定が終わった後、設定を有効にするためにキャッシュをクリアする必要があります。
キャッシュとメモリキャッシュをクリーンアップし、ポストキャッシュを設定した場合は、対応するキャッシュデータベースを空にするか、キャッシュが失敗するまで待つ必要があります。
この時点でDiscuz httpsは正常に有効化されており、もちろん一部のページにアクセスする際にロックが突破される可能性があります。 なぜなら、他のhttpコンテンツがページに読み込まれているからです。 統計コード、QQ共有コード、QQショーアバターなどは、現時点でHTTPSプロトコルを提供していないため有効化できない場合があります。 Discuzがさらにサポートしてくれるのを待ってください https。





先の:2015年 Google I/O カンファレンス 新製品コレクション
次に:Nginxのセルフスタート失敗
掲載地 2015/06/01 17:05:36 |
フォーラムはSSL暗号化伝送技術の実現を目指しています
掲載地 2018/01/03 13:57:42 |
直接$_G['isHTTPS'] = true;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com