<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mtls on よ〜んの雑記</title><link>https://mu7889yoon.github.io/tags/mtls/</link><description>Recent content in Mtls on よ〜んの雑記</description><generator>Hugo</generator><language>ja-jp</language><lastBuildDate>Mon, 13 Jul 2026 23:17:07 +0900</lastBuildDate><atom:link href="https://mu7889yoon.github.io/tags/mtls/index.xml" rel="self" type="application/rss+xml"/><item><title>CloudFrontでmTLSを使ってみる</title><link>https://mu7889yoon.github.io/posts/learn-about-mtls/</link><pubDate>Mon, 13 Jul 2026 23:17:07 +0900</pubDate><guid>https://mu7889yoon.github.io/posts/learn-about-mtls/</guid><description>&lt;p&gt;よ〜んです。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mu7889yoon.github.io/posts/eliminating-iam-access-keys-with-iam-roles-anywhere/"&gt;前回の記事&lt;/a&gt;に引き続き、証明書関連の記事です。&lt;/p&gt;
&lt;p&gt;今回は CloudFront の viewer mTLS を触ってみました。&lt;/p&gt;
&lt;p&gt;CloudFront 側で mTLS を受けれるので「証明書を持っている人だけ入れる」みたいな入口を作れます、なかなか便利そうです。&lt;/p&gt;
&lt;p&gt;ソースコードは&lt;a href="https://github.com/mu7889yoon/examples/tree/main/learn-about-mtls"&gt;こちら&lt;/a&gt;です。&lt;/p&gt;
&lt;p&gt;参考 &lt;a href="https://aws.amazon.com/jp/blogs/news/trust-goes-both-ways-amazon-cloudfront-now-supports-viewer-mtls/"&gt;信頼は相互に: Amazon CloudFront が mTLS をサポート | Amazon Web Services ブログ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ソースコード &lt;a href="https://github.com/mu7889yoon/examples/tree/main/learn-about-mtls"&gt;examples/learn-about-mtls at main · mu7889yoon/examples&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mtls相互tls"&gt;mTLS(相互TLS)&lt;/h2&gt;
&lt;p&gt;mTLS は Mutual TLS の略で「サーバーもクライアントも証明書で相手を確認する TLS」です。&lt;/p&gt;
&lt;p&gt;普通の HTTPS では、ブラウザがサーバー証明書を確認します。
つまり「このサイトは本当にそのサイトなのか？」をクライアント側が検証する感じですね。&lt;/p&gt;
&lt;p&gt;一方で mTLS では、サーバー側もクライアント証明書を確認します。&lt;/p&gt;
&lt;pre class="mermaid"&gt;sequenceDiagram
 participant Client as Client
 participant CloudFront as CloudFront
 participant S3 as S3

 Client-&amp;gt;&amp;gt;CloudFront: HTTPS request &amp;#43; client certificate
 CloudFront-&amp;gt;&amp;gt;CloudFront: Trust Store の CA で検証
 alt valid certificate
 CloudFront-&amp;gt;&amp;gt;S3: request index.html
 S3--&amp;gt;&amp;gt;CloudFront: You are able to access it.
 CloudFront--&amp;gt;&amp;gt;Client: 200 OK
 else invalid or missing certificate
 CloudFront--&amp;gt;&amp;gt;Client: reject
 end&lt;/pre&gt;



&lt;p&gt;今回の検証では、ローカルで CA 証明書とクライアント証明書を作りました。
CloudFront には CA 証明書の bundle を Trust Store として登録して、クライアント証明書がその CA で署名されているかを見てもらう構成です。&lt;/p&gt;</description></item></channel></rss>