通信の暗号化
はじめに
インフラエンジニア初学者のぽれいんと申します。
転職する前はプログラミングスクールにて主にHTML、CSS、Ruby、MySQL等について学びました。
※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。
<前回の記事>
<参考>
ApacheでSSL(TLS)を有効化する方法 - Qiita
通信の暗号化
今まではhttpプロトコルを使って通信を行っていました。この「http」通信は通常の平文で通信を行っているため、プライバシーも何もない通信となっています。http通信において個人情報を入力するのは流出につながるため絶対に行ってはいけません。そこでhttp通信を暗号化する「https」という通信を基本的にweb上では見かけると思います。「https」通信はSSL/TLSプロトコルを利用した暗号化通信が行われています。
使用環境
- サーバー
- Amazon EC2
- インスタンスタイプ: t2.micro (1台)
- オペレーティングシステム: Amazon Linux 2
- Amazon EC2
- ソフトウェア
暗号化の手順
今回のブログではhttp通信をhttps化する手順を備忘録として残します。
rootユーザになる
sudo su -
SSL(TLS)化を有効にするためのモジュールをインストール
yum install openssl
yum install mod_ssl
作業用フォルダに移動
cd /etc/pki/tls/certs/
秘密鍵の作成
openssl genrsa > server.key
...Generating RSA private key, 2048 bit long modulus....+++
と表示されれば成功
公開鍵の作成
openssl req -new -key server.key > server.csr
Country Name (2 letter code) [XX]: JP
↑国名を入力
State or Province Name (full name) []:Tokyo
↑都道府県名を入力
Locality Name (eg, city) [Default City]:Tama
↑市区町村名を入力
Organization Name (eg, company) [Default Company Ltd]:XXX
↑組織名(会社名)を入力
Organizational Unit Name (eg, section) []:Sales
↑部署名を入力
Common Name (eg, your name or your server's hostname) []:11.1.1.1
↑IPアドレスを入力
Email Address []:popopo@email.com
↑メールアドレスを入力
A challenge password []:
An optional company name []:
↑今回はオレオレ証明書なので何も入力せずEnter
サーバ証明書の作成
openssl x509 -req -signkey server.key < server.csr > server.crt
↑を実行して先ほど入力した情報が出てくればOK!
秘密鍵のコピー
cp -a server.key ../private/
ssl.confの修正
cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org
vi /etc/httpd/conf.d/ssl.conf
-----------------------------------------------
1.サーバ名の変更
2.証明書のパス
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
↓↓
SSLCertificateFile /etc/pki/tls/certs/server.crt
3.秘密鍵のパス
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
↓↓
SSLCertificateKeyFile /etc/pki/tls/private/server.key
Apache再起動
systemctl restart httpd
以上の作業でhttpsプロトコルが使用できるようになっております。
<URL>
上記のURLでアクセスすると、接続がプライベートではありません。⚠セキュリティ保護なしという画面が出てくると思います。これは、証明書が自分で発行したオレオレ証明書だからです。しっかりとした機関が発行したものでしたら他のwebサイト同様にアクセスできます。証明書の発行機関は簡単に確認することができます。
URLの鍵マークをクリックし、証明書をクリックすることで
・発行先
・発行者
・有効期間 等
が確認できるので是非確認してみてください~~!!
以上