0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSLを学んで触ってみる

Last updated at Posted at 2025-03-13

image.png

こんにちは!
SSLについて学んだり、Linux環境で触ったりしたのでここでアウトプットしていきます!

SSLとは

インターネットが発展する前、コンピュータ同士は暗号化されていない通信でデータをやり取りしていました。しかし、情報がそのまま送信されるため、盗聴や改ざんのリスクがありました。そこで、「通信を暗号化する仕組み」としてSSL(現在はTLS)が誕生しました。

例えば、オンラインショッピングでクレジットカード情報を入力するとき、SSLがないとその情報がそのまま送信されてしまい、第三者に盗み見られる可能性があります。しかし、SSLを使うことでデータが暗号化され、安全に送信されるため、悪意のある攻撃者が途中で盗み見ても解読できません。

SSL証明書を取得するまでの流れ

1. 秘密鍵(Private Key)の作成

まず、公開鍵暗号方式 に基づいて秘密鍵を作成します。
秘密鍵はサーバー内に厳重に保管し、外部に漏らしてはいけません。

2. CSR(証明書署名要求)の作成

次に、SSL証明書を取得するためのCSR(Certificate Signing Request) を作成します。
CSRには、公開鍵・ドメイン名・組織情報 などが含まれます。

3. CSRを認証局(CA)に提出し、証明書を発行

作成したCSRを認証局(CA: Certificate Authority) に送信し、SSL証明書を発行してもらいます。

4. サーバーにSSL証明書をインストール

CAから発行されたSSL証明書(.crtファイル)をサーバーに配置し、秘密鍵と組み合わせます。
設定後にアクセスし、鍵マーク(🔒)が表示されれば成功!

実際にLinuxに試してみる

では、SSLを実際にローカル環境で試していきたいと思います。
今回はお金をかけたくないので、認証局(CA)を通さずに、自分で作成したSSL証明書(オレオレ証明書)で試していきます。

前提条件

  • Ubuntuサーバーが動作している
  • Apache(Webサーバー)がインストールされている
  • サーバーのIPアドレスは 192.168.~.~
  • DNSが稼働しており、keita.server という名前で解決できる
    (参考:https://qiita.com/keitakei777/items/54aaf042bb69fe492fd3)
    image.png

1. 証明書と鍵ファイルを作成

まず、自己証明書(オレオレ証明書)と鍵の作成を行います。
以下のコマンドを実行します。

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/private/keita.server.key \
    -out /etc/ssl/certs/keita.server.crt

実行時に以下の情報を入力します。

Country Name (2 letter code) [AU]: JP
State or Province Name (full name) [Some-State]: Tokyo
Locality Name (eg, city) []: Adachi
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Keita Corp
Organizational Unit Name (eg, section) []: IT Department
Common Name (e.g. server FQDN or YOUR name) []: keita.server
Email Address []: webmaster@keita.server

これにより、以下のファイルが作成されます。

/etc/ssl/certs/keita.server.crt
/etc/ssl/private/keita.server.key

2. Apacheに設定を適用

Apacheの仮想ホスト設定ファイルを作成します。

sudo nano /etc/apache2/sites-available/keita.server.conf

以下の内容を記述します。

<VirtualHost *:443>
    ServerName keita.server
    ServerAlias www.keita.server
    DocumentRoot /var/www/html

    <Directory /var/www/keita>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/keita_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/keita_ssl_access.log combined

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/keita.server.crt
    SSLCertificateKeyFile /etc/ssl/private/keita.server.key
</VirtualHost>

次に、設定を有効化します。

sudo a2ensite keita.server.conf
sudo systemctl reload apache2

3. ブラウザで確認

HTTPSでのアクセスをPCの hosts ファイルに以下のエントリを追加して行います。

192.168.~.~ keita.server

その後、ブラウザで以下のURLにアクセスします。

https://keita.server/

image.png

セキュリティ警告が表示されるかもしれませんが、証明書情報を確認し、HTTPSでアクセスできていれば成功です。

まとめ

こんな感じでSSLの証明書について調べたり触ってみたりしました!
今回詳細した方法は ローカル環境限定 で有効な設定です。セキュリティ的対策はしていないので、ローカル開発環境のテストとして活用してください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?