﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SSL  |  Web Creators Hub</title>
	<atom:link href="https://web-creators-hub.com/category/ssl/feed/" rel="self" type="application/rss+xml" />
	<link>https://web-creators-hub.com</link>
	<description>WEB技術などの情報をわかりやすく配信するメディア</description>
	<lastBuildDate>Wed, 08 Feb 2023 01:56:31 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.8.2</generator>
	<item>
		<title>WindowsでSSL証明書発行・更新する2つの方法</title>
		<link>https://web-creators-hub.com/ssl/windows-ssl/</link>
		<pubDate>Tue, 19 Nov 2019 14:55:44 +0000</pubDate>
		<dc:creator><![CDATA[taizo]]></dc:creator>
				<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">https://web-creators-hub.com/?p=466</guid>
		<description><![CDATA[SSL証明書発行・更新はSSLの仕組みを理解すれば簡単です。 簡単にまとめると以下の流れになります。 1.秘密鍵作成 2.作成した秘密鍵を使...]]></description>
				<content:encoded><![CDATA[<p>SSL証明書発行・更新はSSLの仕組みを理解すれば簡単です。</p>
<p>簡単にまとめると以下の流れになります。<br />
1.秘密鍵作成<br />
2.作成した秘密鍵を使ってCSR作成<br />
3.作成したCSRをサーバ認証機関に申請<br />
4.サーバ認証機関から証明書が発行される<br />
5.CSRを作った秘密鍵と証明書をサーバにインストール</p>
<p>1,2は基本的にコマンドで作成する必要がありますが、Windowsでは使えません。<br />
作成するコマンドを使うためには「Git Bush」をインストールする必要があります。<br />
インストールできない環境の場合はLinuxで作成するか作成できるWEBサイトを活用するしかありません。</p>
<p>インストール方法は以下の記事</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-left cf"><div class="blog-card-thumbnail"><a href="https://web-creators-hub.com/windows/scp/" class="blog-card-thumbnail-link"><img src="https://s0.wordpress.com/mshots/v1/https%3A%2F%2Fweb-creators-hub.com%2Fwindows%2Fscp%2F?w=100&h=100" alt="" class="blog-card-thumb-image" srcset="https://s0.wordpress.com/mshots/v1/https%3A%2F%2Fweb-creators-hub.com%2Fwindows%2Fscp%2F?w=100&h=100 100w" width="100" height="100" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://web-creators-hub.com/windows/scp/" class="blog-card-title-link">WindowsでSCPを使う二つの方法</a></div><div class="blog-card-excerpt">SCPコマンドとは

SCPコマンドはリモートのマシンにデータをコピーするコマンドです。コピーコマンドのcpにsがついています。
sはSSH...</div></div><div class="blog-card-footer"><div class="blog-card-site">web-creators-hub.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://web-creators-hub.com/windows/scp/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://web-creators-hub.com/windows/scp/" alt="" /></a></div><div class="blog-card-date">2019-08-20 00:30</div></div></div>
<h2>Git Bushを使ってコマンドで作成する場合</h2>
<p>インストールが終わったらGit Bushを起動しコマンドを使って秘密鍵作成を行います。<br />
コマンドは「winpty openssl」を使います。Linuxのように「openssl」のみで実行すると作成できませんので必ず「winpty」を付けてください。</p>
<p>&nbsp;</p>
<p><span class="bold">・形式（RSA）</span></p>
<pre>winpty openssl genrsa オプション</pre>
<p>&nbsp;</p>
<p>以下のコマンドで作成します。</p>
<pre class="brush: bash; title: ; notranslate">
winpty openssl genrsa -out ./server.key 2048 
</pre>
<p>&nbsp;</p>
<p><span class="bold">・説明</span><br />
<strong>[winpty openssl genrsa]</strong><br />
RSA暗号形式を使って秘密鍵を作成する。<br />
RSA暗号とは桁数が大きい数の素因数分解を解くのが困難であるという特性を利用した暗号化技術。<br />
素因数分解の問題を簡単に解く方程式がないのでひたすら計算するしかない。もしスーパーコンピュータを使っても桁数が多いとほぼ解けない。</p>
<p><strong>[-out ./server.key]</strong><br />
出力する秘密鍵の名前を任意で決める。</p>
<p><strong>[2048]</strong><br />
RSA暗号形式の強度。大きいと強度が大きくなる。2048以上あれば問題ない。</p>
<p>&nbsp;</p>
<h3>秘密鍵にパスフレーズを付けたい場合</h3>
<p>オプションに-des3を追加するとパスフレーズが設定できる。</p>
<pre class="brush: bash; title: ; notranslate">
winpty openssl genrsa -des3 -out ./server.key 2048  
Enter pass phrase for ./server.key:　　　　　　　　　　←パスワード  
Verifying - Enter pass phrase for ./server.key:　　　　←再度パスワード
</pre>
<p>&nbsp;</p>
<h2>CSRを作成</h2>
<p>作成した秘密鍵を使ってCSRを作成します。</p>
<pre>openssl req -new -key [秘密鍵] -out [出力するCSRの名前]</pre>
<p>&nbsp;</p>
<p>以下のコマンドで作成します。</p>
<pre class="brush: bash; title: ; notranslate">
openssl req -new -key ./server.key -out ./server.csr
</pre>
<p>&nbsp;</p>
<p>以下の質問に答えCSRを作成します。</p>
<pre class="brush: bash; title: ; notranslate">
You are about to be asked to enter information that will be incorporated  
into your certificate request.  
What you are about to enter is what is called a Distinguished Name or a DN.  
There are quite a few fields but you can leave some blank  
For some fields there will be a default value,  
If you enter '.', the field will be left blank.  
  
Country Name (2 letter code) [XX]:JP  
State or Province Name (full name) []:Chuo-ku, Osaka-shi
Locality Name (eg, city) [Default City]:Osaka
Organization Name (eg, company) [Default Company Ltd]:company 
Organizational Unit Name (eg, section) []:空白  
Common Name (eg, your name or your server's hostname) []:hogehoge.com
Email Address []:空白  
  
Please enter the following 'extra' attributes  
to be sent with your certificate request  
A challenge password []:空白  
An optional company name []:空白  
</pre>
<p>&nbsp;</p>
<p><span class="bold">・説明</span><br />
<strong>[Country Name]</strong><br />
国コードを入力します。日本の場合はJPを入力。</p>
<p><strong>[State or Province Name]</strong><br />
市区町村を入力します。</p>
<p><strong>[Locality Name]</strong><br />
都道府県を入力します。</p>
<p><strong>[Organization Name]</strong><br />
組織・団体名を入力します。</p>
<p><strong>[Organizational Unit Name]</strong><br />
部門・部局を入力します。空白でも問題ないです。</p>
<p><strong>[Common Name]</strong><br />
SSL化したいFQDNを入力します。</p>
<p>他の項目は空白で問題ないです。</p>
<p>&nbsp;</p>
<h2>WEBサイトのCSR・秘密鍵生成ツールで作成する</h2>
<p>コマンドを使う以外にもWEBアプリを使う方法があります。SSL発行会社のほとんどがWEBサイト上で作成するツールをもっています。<br />
これを利用することで簡単に作成することができます。</p>
<p><strong>CSR・秘密鍵生成ツール</strong><br />
<a href="https://www.ssl-mart.com/system/tool/generateCsr" target="_blank" rel="noopener">https://www.ssl-mart.com/system/tool/generateCsr</a></p>
<p>&nbsp;</p>
<h2>申請する</h2>
<p>SSL証明書を発行してもらうために発行会社にCSRを提出します。申請はフォームからできます。作成したCSRをテキストエディタで開き、内容をコピーしフォームに貼り付けます。<br />
その後ドメイン認証型の場合は申請者が本当にドメインの所有者かどうか承認してもらう必要があります。承認方法は指定の受信メールアドレスを選択するか指定のファイルをアップロードかのどれかになります。申請するSSL会社によりますが、だいたいこの二通りになります。</p>
<p>&nbsp;</p>
<h2>証明書発行</h2>
<p>承認完了後、メールでSSL証明書と中間証明書が届きます。Apacheに届いた証明書と中間証明書、申請したCSRを作成した秘密鍵をインストール(設定)します。CSRはインストールに必要ありません。インストール方法は割愛します。</p>
<p>&nbsp;</p>
<h2>ペアの確認方法</h2>
<p>CSR(公開鍵)、秘密鍵、証明書はそれぞれペアでなければなりません。<br />
秘密鍵がほかのものになっている場合はエラーがでて動作しません。不安な時は必ずチェックしてください。</p>
<p>確認方法はコマンドで行います。Windowsの場合はGit Bashを起動してください。</p>
<p><strong>・CSRファイルのチェックサム取得</strong></p>
<pre>openssl req -noout -modulus -in [CSR名] | openssl md5</pre>
<pre class="brush: bash; title: ; notranslate">
openssl req -noout -modulus -in server.csr | openssl md5
(stdin)= 47bab85c249c832344bfec3d3a52e77b
</pre>
<p>&nbsp;</p>
<p><strong>・秘密鍵ファイルのチェックサム取得</strong></p>
<pre>openssl rsa -noout -modulus -in [秘密鍵名]| openssl md5</pre>
<pre class="brush: bash; title: ; notranslate">
openssl rsa -noout -modulus -in server.key | openssl md5
(stdin)= 47bab85c249c832344bfec3d3a52e77b
</pre>
<p>&nbsp;</p>
<p><strong>・SSL証明書ファイルのチェックサム取得</strong></p>
<pre>openssl x509 -noout -modulus -in [証明書名] | openssl md5</pre>
<pre class="brush: bash; title: ; notranslate">
openssl x509 -noout -modulus -in server.crt | openssl md5
(stdin)= 47bab85c249c832344bfec3d3a52e77b
</pre>
<p>チェックサム(stdin)の値が同一であれば問題ありません。違う場合は間違っています。</p>
]]></content:encoded>
			</item>
		<item>
		<title>WordPressなどのサイトを無料で常時SSL化(https)する方法</title>
		<link>https://web-creators-hub.com/ssl/free-ssl/</link>
		<pubDate>Sun, 05 Nov 2017 12:57:51 +0000</pubDate>
		<dc:creator><![CDATA[taizo]]></dc:creator>
				<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">https://web-creators-hub.com/?p=47</guid>
		<description><![CDATA[無料SSLでサイト構築 現在、Let&#8217;s Encryptという認証局を使えば無料で常時SSL化したサイトが簡単に構築できます。今...]]></description>
				<content:encoded><![CDATA[<p><img class="size-full wp-image-130 aligncenter" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/718851906655a2df9e87eb161033a2f6_m.jpg" alt="" width="1920" height="1280" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/718851906655a2df9e87eb161033a2f6_m.jpg 1920w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/718851906655a2df9e87eb161033a2f6_m-300x200.jpg 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/718851906655a2df9e87eb161033a2f6_m-768x512.jpg 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/718851906655a2df9e87eb161033a2f6_m-1024x683.jpg 1024w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/718851906655a2df9e87eb161033a2f6_m-320x213.jpg 320w" sizes="(max-width: 1920px) 100vw, 1920px" /></p>
<h2>無料SSLでサイト構築</h2>
<p>現在、Let&#8217;s Encryptという認証局を使えば無料で常時SSL化したサイトが簡単に構築できます。今回はLet&#8217;s Encryptを使ってSSL化する方法を解説していきます。環境は「CentOS6 Apache+openssl」で行います。</p>
<h2>Let&#8217;s Encryptとは</h2>
<p>Let&#8217;s Encryptとは誰もが無料で利用できる自動化されたオープンな認証局です。認証局はアメリカ合衆国のカルフォルニア州の公益法人が運営しています。</p>
<p>Let&#8217;s Encryptの目的はインターネットを安全に通信を行うためのさまざまな障壁（経済面・技術面・教育面）を減らすことです。このような目的があるため、常時SSL化したサイトが簡単に構築できます。</p>
<h2>自動証明書発行の仕組み</h2>
<p>基本的に認証の流れは<a href="https://web-creators-hub.com/%e6%8a%80%e8%a1%93%e5%ad%a6%e7%bf%92/ssl/" target="_blank" rel="noopener">前回説明した記事</a>の流れと同じですが、「Let&#8217;s Encrypt」ではその流れをすべて自動で行います。「certbot-auto」というツールでサーバはドメイン情報を送信し、認証局はドメインの存在や正常性を確認します。</p>
<p>その後、サーバはCSR送信し、認証局は証明書を発行します。サイト運営者は発行された証明書をサーバにインストールします。証明書のインストール以外は「certbot-auto」ツールがすべて自動で行います。</p>
<h2>有料版SSLと無料SSLの違い</h2>
<p>有料版SSLと無料SSLの違いは認証局の信用度の違いにあります。料金が高いものであれば認証局の審査が厳しく、その分サイトの信頼性が上がります。</p>
<p>クレジットカード情報などの重要な個人情報を取り扱う場合は、このような有料版を使うことでユーザーに安心感を与えることができます。しかし、SEOのためにSSL化する場合は機能にほぼ変わりがないため無料SSLで十分です。</p>
<h2>セットアップ</h2>
<p>では実際にセットアップしていきます。準備として「certbot-auto」のツールをダウンロードします。</p>
<p>curlコマンドを使ってツールをダウンロードします。</p>
<pre class="brush: bash; title: ; notranslate">
curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
</pre>
<p>&nbsp;</p>
<p>chmodコマンドでツールの実行権限を与えます。</p>
<pre class="brush: bash; title: ; notranslate">
chmod a+x /usr/bin/certbot-auto
</pre>
<p>&nbsp;</p>
<p>「certbot-auto」のツールを使って依存しているパッケージをインストールします。</p>
<pre class="brush: bash; title: ; notranslate">
certbot-auto --os-packages-only --non-interactive
</pre>
<p>&nbsp;</p>
<p>「certbot-auto」のツールを使って証明書を取得します。認証するサイトのドメイン名とドキュメントルートのパス、メールアドレスを入力します。メールアドレスは更新期限が近づいたときに通知されるメールアドレスを指定します。</p>
<pre class="brush: bash; title: ; notranslate">
#certbot-auto certonly --non-interactive --agree-tos --webroot -w ドキュメントルートのパス -d ドメイン名 --email メールアドレス
#例 ドメインhogehoge.comの場合
certbot-auto certonly --non-interactive --agree-tos --webroot -w /var/www/vhosts/hogehoge.com/httpdocs -d www.hogehoge.com --email hogehoge@hogehoge.com
</pre>
<p>&nbsp;</p>
<p>発行された証明書をインストールする前に、サーバの環境を整えます。<br />
まずopensslがインストールされているか確認します。</p>
<pre class="brush: bash; title: ; notranslate">
rpm -qa | grep openssl-devel
</pre>
<p>&nbsp;</p>
<p>インストールされていない場合はインストールします。</p>
<pre class="brush: bash; title: ; notranslate">
yum install openssl-devel
</pre>
<p>&nbsp;</p>
<p>Apacheと連携するためにモジュールをインストールします。</p>
<pre class="brush: bash; title: ; notranslate">
yum install mod_ssl
</pre>
<p>&nbsp;</p>
<p>これでサーバの環境が整いましたので、発行された証明書をインストールします。<br />
Apacheの設定を追加します。<br />
例：hogehoge.comの場合<br />
コンフィグファイルを作成します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/https/conf.d/ssl.hogehoge.com.config
</pre>
<p>&nbsp;</p>
<p>コンフィグファイルにサイト設定と証明書をインストールします。</p>
<pre class="brush: bash; title: ; notranslate">
&lt;VirtualHost *:443&gt;
　　#サイト設定
    ServerName www.hogehoge.com
    ServerAlias hogehoge.com
    DocumentRoot /var/www/vhosts/hogehoge.com/httpdocs
    ErrorLog /var/www/vhosts/hogehoge.com/logs/error_access_logs
    CustomLog /var/www/vhosts/hogehoge.com/logs/main-access_logs combined env=!no_log
    &lt;Directory /var/www/vhosts/hogehoge.com/httpdocs&gt;
        AllowOverride All
    &lt;/Directory&gt;

    #SSL証明書のインストール
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/hogehoge.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/hogehoge.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/hogehoge.com/chain.pem

&lt;/VirtualHost&gt;
</pre>
<p>&nbsp;</p>
<p>SSLのコンフィグファイルにバーチャルドメインの設定を追加します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/httpd/conf.d/ssl.conf
</pre>
<p>&nbsp;</p>
<p>下記コードを追加します。</p>
<pre class="brush: bash; title: ; notranslate">
##
## SSL Virtual Host Context
##
NameVirtualhost *:443
</pre>
<p>&nbsp;</p>
<p>サーバに設定を反映させます。</p>
<pre class="brush: bash; title: ; notranslate">
service httpd resatart
</pre>
<p>「https://ドメイン名」にアクセスし、エラーが出ていないか確認します。</p>
<h2>FireFoxでエラーが出る場合</h2>
<p>中間証明書をダウンロードします。</p>
<pre class="brush: bash; title: ; notranslate">
wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem
</pre>
<p>&nbsp;</p>
<p>ダウンロードしたファイルを証明書ディレクトリに移動します。</p>
<pre class="brush: bash; title: ; notranslate">
mv lets-encrypt-x1-cross-signed.pem /etc/letsencrypt/live/hogehoge.com/
</pre>
<p>&nbsp;</p>
<p>コンフィグファイルに追加します。</p>
<pre class="brush: bash; title: ; notranslate">
vi /etc/https/conf.d/ssl.hogehoge.com.config
</pre>
<p>&nbsp;</p>
<p>コンフィグファイルに下記を追加します。</p>
<pre class="brush: bash; title: ; notranslate">
SSLCertificateChainFile /etc/letsencrypt/live/hogehoge.com/lets-encrypt-x1-cross-signed.pem
</pre>
<h2>httpsにリダイレクト</h2>
<p>ドキュメントルートに「.htaccess」を作成し下記コードを追加します。</p>
<pre class="brush: bash; title: ; notranslate">
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</pre>
<h2>自動更新</h2>
<p>証明書が期限切れにならないように自動更新コードをCron(スケジューラー)に追加します。</p>
<p>cronファイルを開きます。</p>
<pre class="brush: bash; title: ; notranslate">
crontab -e
</pre>
<p>&nbsp;</p>
<p>下記のコードを追加します。例では午前3時に更新するように設定しています。</p>
<pre class="brush: bash; title: ; notranslate">
MAILTO=&quot;&quot;
0 3 * * * root certbot-auto renew --post-hook &quot;/usr/sbin/apachectl graceful&quot; &gt; /dev/null 2&gt;&amp;1
</pre>
<p>これで完了です。</p>
]]></content:encoded>
			</item>
		<item>
		<title>SSLの仕組みを学んで常時SSL化したサイトを構築する</title>
		<link>https://web-creators-hub.com/study/ssl/</link>
		<pubDate>Fri, 03 Nov 2017 07:37:29 +0000</pubDate>
		<dc:creator><![CDATA[taizo]]></dc:creator>
				<category><![CDATA[SSL]]></category>
		<category><![CDATA[技術学習]]></category>

		<guid isPermaLink="false">https://web-creators-hub.com/?p=117</guid>
		<description><![CDATA[SSLとは SSLはセキュリティを重視した通信プロトコルです。データの盗聴を防ぐ暗号化、なりすましを防ぐ認証、情報の改ざんを防ぐ改ざん検出の...]]></description>
				<content:encoded><![CDATA[<p><img class="size-full wp-image-118 aligncenter" src="https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/ssl_main.jpg" alt="" width="1600" height="1066" srcset="https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/ssl_main.jpg 1600w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/ssl_main-300x200.jpg 300w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/ssl_main-768x512.jpg 768w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/ssl_main-1024x682.jpg 1024w, https://web-creators-hub.com/__wordpress/wp-content/uploads/2017/11/ssl_main-320x213.jpg 320w" sizes="(max-width: 1600px) 100vw, 1600px" /></p>
<h2>SSLとは</h2>
<p>SSLはセキュリティを重視した通信プロトコルです。データの盗聴を防ぐ暗号化、なりすましを防ぐ認証、情報の改ざんを防ぐ改ざん検出の機能を提供しています。</p>
<h2>どのような仕組みでセキュリティを確保しているのか</h2>
<p>前項で説明しましたが、SSLは下記3つの機能を提供しています。</p>
<ul>
<li>1.データの盗聴を防ぐ暗号化</li>
<li>2.なりすましを防ぐ認証</li>
<li>3.情報の改ざんを防ぐ改ざん検出</li>
</ul>
<p>次項からこれらの機能を詳しく説明していきます。</p>
<h2>1.データの盗聴を防ぐ暗号化</h2>
<p>通信はすべて盗聴可能です。通常であれば特に問題はありませんが、ショッピングサイトで送信するクレジットカードの情報や個人情報を盗聴されてしまうと悪用される危険があります。</p>
<p>これをどのようにして盗聴されないようにするのでしょうか。これを実現するのが公開鍵暗号化方式による情報の暗号化です。</p>
<p>公開鍵暗号化方式とは、データを暗号化する公開鍵とデータを復号（解読）する秘密鍵を使って通信する暗号化方式です。公開鍵と秘密鍵はペアになっています。</p>
<p>公開鍵はサーバにデータを送信する全てのユーザーが取得でき、ユーザーはデータをサーバに送信する場合その鍵を使ってデータを送信します。秘密鍵は世界に一つしかなくサーバが保持しています。</p>
<p>サーバは秘密鍵を使ってユーザから送られてきたデータを復号します。このようにして盗聴されない通信を可能にしています。</p>
<h2>2.情報の改ざんを防ぐ改ざん検出</h2>
<p>荷物を遠くの人に配送する時、荷物が破損したり中身を変えられたりする可能性があります。データも同様にデータを離れたサーバに送る時、データが破損したり、改ざん（書き換えられる)される可能性があります。SSLはこのような改ざんを検知する機能が備わっています。</p>
<p>その機能はデータを送信する際にハッシュ関数を使ってハッシュ値（メッセージダイジェスト値）を生成しデータに添付します。ハッシュ値は固定長（32文字、40文字など）の疑似乱数（人間には理解できない意味不明な文字列）で構成されています。</p>
<p>ハッシュ関数はどんな大きなデータもそのハッシュ値に変換し生成します。生成される前のデータが同じであれば同じハッシュ値が生成されますが、生成される前のデータが1文字でも違うと全く違うハッシュ値が生成されます。</p>
<p>サーバは受け取ったデータをハッシュ関数を使ってハッシュ値を生成します。そして添付されたハッシュ値と生成したハッシュ値を比較し一致すれば改ざんされていないと判断します。このようにしてデータの改ざんを検知します。</p>
<p>特徴をまとめると</p>
<ul>
<li>ハッシュ値は固定長の疑似乱数</li>
<li>ハッシュ関数はどんなデータもハッシュ値に変換する</li>
<li>ハッシュ関数はデータが1文字でも違う変わると全く違うハッシュ値を生成する</li>
</ul>
<h2>3.なりすましを防ぐ認証</h2>
<p>なりすましとは、他人が受信者になりすます行為です。よくあるなりすまし行為に「フィッシング詐欺」があります。いくら情報が暗号化されてもサーバ側が悪意のあるもの（詐欺業者など）であれば情報は悪用されます。</p>
<p>それでは暗号化に意味がありません。これを防ぐために第三者機関が受信者であるサイト運営者の身元を確認し、安全を保障することでそのような行為を防ぐことができます。</p>
<p>サイト運営者はサイトが安全であることを証明するために認証局（第三者機関）に安全かどうか認証してもらう必要があります。そこでサイト運営者はCSR（証明書署名要求）を認証局に提出します。</p>
<p>CSRとは電子署名した身元情報と公開鍵をまとめたもので、電子署名とは本人であることを証明するもので電子的なハンコやサインようなものです。認証局はこのCSRから安全なサイトか審査します。</p>
<p>審査後、合格であればSSLサーバ証明書（電子証明書）を発行しサイト運営者に送信します。サイト運営者はSSLサーバ証明書をサーバにインストールしSSL対応のウェブサイトを公開することができます。</p>
<p>&nbsp;</p>
<div class="information">電子署名の仕組み<br />
先ほど説明したように電子署名とはこの文章を書いたものが本人であることを証明するもので電子的なハンコやサインようなものです。その仕組みは公開鍵暗号化方式の手順を逆にして実現しています。暗号化では公開鍵で暗号化し秘密鍵を使って復号しました。電子署名では秘密鍵で暗号化し公開鍵で復号します。CSRを作成する手順としてサイト運営者は公開鍵と秘密鍵のペアを生成します。生成した秘密鍵を使ってCSR(身元情報と公開鍵)生成します。その際電子文書（身元情報など）がハッシュ値に変換され、そのハッシュ値が秘密鍵で暗号化されます。この暗号化が電子署名にあたります。認証局は電子署名されたCSRを公開鍵で復号し、ハッシュ値を比較、一致すればサイト運営者が書いた電子文章であることを認めます。</div>
<p>このようにSSLはさまざまなアルゴリズムのパッケージで盗聴されない安全な通信を確保しています。</p>
<p>&nbsp;</p>
<h2>常時SSL化の流れ</h2>
<p>Googleではユーザーの個人情報を保護の観点から常時SSL化を支持しています。そして常時SSLがGoogleの検索順位を優遇する一つの要素であり、一般的に常時SSL化はSEO対策の一つとして認識されています。このような流れから現在常時SSLが急速に広まってきました。</p>
<h2>個人サイトでのSSL化</h2>
<p>SSL化するためには認証局の審査に合格する必要があり、認証にはお金がかかりました。信用性の高い認証機関であれば価格も高額になり個人ではなかなか取得できませんでした。しかし、現在では低価格のものや無料できるものも存在し、個人でも気軽にSSL化できる環境が整いつつあります。</p>
<h2>無料SSLでサイト構築</h2>
<p>今回はSSLの仕組みを学びましたが、次回では実際に無料でできるSSLを使って常時SSL化したサイトを構築していきます。</p>
<p>&nbsp;</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
