skillup

技術ブログ

サーバー・ネットワーク

Let’s Encryptによるhttps化

投稿日:2020年5月11日 更新日:

以前下記の記事で、herokuでLet’s Encryptを使おうとしたのですが、結局使うことがありませんでした。

herokuでのLet’s Encrypt設定

どこかで使おうか・・と考えていたのですが、よく考えるとこのブログ自体httpsでなかったんですよね・・・。

このご時世、httpはまずいなあ・・と思い、https化しました。

その時のメモを。

中間証明書と秘密鍵の作成

今回はLet’s Encryptで作成しましたので、先ほどのリンクを実行し、

をサーバーの任意の位置に配置すればOKです。

通常証明書などは業者から年数千円〜数万円で購入するのが一般的かと思います。

その場合、「SSLの設定に関して」を参考にしていただければと思います。

あるいは信頼度も低くていいのであればオレオレSSLという方法もあります。

モジュールセット+apache設定ファイル更新

証明書(正確にはサーバー証明書と中間証明書の合体)と秘密鍵をサーバーにおいたあとはapacheかnginxのファイルに書き込みをします。

今回このブログはapacheで動かしてますのでそちらの設定手順を。

ライブラリインストール

Apache httpdで作るHTTPSサーバ

設定ファイル

/etc/httpd/conf/httpd.conf

上記の NameVirtualHost *:443 の部分を追加。これを書かないと個別のVirtualHostの設定が効きません。

/etc/http/conf.d/個別のvirtualhostの設定ファイル

上記設定を80番の下に追加します。

このあと、apache再起動すればOKです。

SSL でも VirtualHost (Apache2.2)

ポート開放

CentOS6ならiptables、CentOS7ならfirewallで443を開放します。

CentOS6の場合

CentOS7

起動したあとはこちらで443ポートが開放されているかを下記ツールで確認しましょう。

CMAN

.htaccess修正

最後にhttpでアクセスした時に強制的にhttpsに飛ばすようにアプリ側にhtaccessを追加しましょう。

今回、WordPressだったので下記のように設定しました。

追記

ちなみに画像やcss、jsにhttpのものが入っているとconsoleに下記のようにエラーメッセージがでて、httpsなのに、ブラウザの鍵マークが付与されません。

ありえる原因としてはコードの中に直でhttp://で書いている場所などがあるため、その部分を修正することにしましょう。

-サーバー・ネットワーク
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

dockerインストール

ansibleに続いてdockerについて書いていこうと思います。 Contents1 dockerとは?1.1 インストール1.2 イメージ取得&コンテナ作成1.3 commit1.4 参考リンク …

no image

セッションとクッキーについて

セッションとクッキーについての違いを整理しておこうと思います。 Contents1 そもそものHTTPプロトコルについて2 ステートフルな状態を実現するために2.1 方法1 クライアント側で情報を保持 …

no image

インメモリデータベース redis

インメモリデータベースのredis(レディース)について。 キャッシュとして以前はmemcachedを使っていましたが、いろいろ多機能ということでredisをちょっと触ってみようかと。 Content …

no image

CSRF(クロスサイト・リクエスト・フォージェリ)

Contents1 CSRF(クロスサイト・リクエスト・フォージェリ)とは?2 被害3 対策4 参考(トークンチェック) CSRF(クロスサイト・リクエスト・フォージェリ)とは? ウェブサイトの中には …

no image

ECSについて

AWSでwebアプリを立ち上げる場合、基本的にはEC2+RDS(小規模な場合は使わないケースもあるかも・・)+アルファの構成が多いと思うのですが、Dockerでコンテナイメージをもっていれば、コンテナ …

アーカイブ