#author("2020-03-09T08:06:56+00:00","default:admin","admin") -[[SSL/TLSについてまとめ2018:https://qiita.com/Brutus/items/1015cc01d2e1eb82a526]] -[[HTTPS入門:https://rms.ne.jp/Introduction_to_https/]] -[[常時SSL化のする為の資料:https://qiita.com/nightyknite/items/36cc1d4d067def437e04]] *基礎知識 [#m2747c7b] -[[SSLの基本を押さえる:https://thinkit.co.jp/free/article/0706/3/6/]] -SSLは共通鍵暗号方式と公開鍵暗号方式の両方を使用する -公開鍵暗号方式は、データ授受に用いる共通鍵のやり取りのみに用いられる -送信データは共通鍵にて暗号化される * [[OpenSSL:http://www.openssl.org/]] [#daaf2922] -1.0.0 が出ているが、Apacheのconfigure時にエラーが出たりトラブルに遭遇するので、まだ使わない方が良い ** インストール [#i723f2cb] # ./config shared -fPIC # make # make test # make install -上記は64bit版Linuxの場合 -sharedはシェアードライブラリ(共有ライブラリ)を作るという指定 **プログラミング [#ta3fa6c3] -[[SSL/TLS でアクセスしてみよう (1):http://x68000.q-e-d.net/~68user/net/ssl-1.html]] -[[SSL/TLS でアクセスしてみよう (2):http://x68000.q-e-d.net/~68user/net/ssl-2.html]] *動作検証 [#f3494479] **OpenSSL [#fd2893e8] -[[openssl コマンドで SSL/TLS バージョンを指定した HTTPS 接続テストを実施する:http://sig9.hatenablog.com/entry/2016/07/03/230000]] **wget [#y57a0506] * 証明書 [#ee254476] -[[無料 SSL 証明書 StartSSL を使う:http://futuremix.org/2009/02/startssl]] -[[秘密鍵とCSRの確認:http://ameblo.jp/itboy/entry-10339290260.html]] ... ページの中ほど -[[マルチクラウド環境におけるサーバ証明書の運用 Let's Encrypt/AWS/Azure:https://qiita.com/Brutus/items/911beead0440d35b8063]] **Root証明書 [#f11a8ecd] -[[有効期限切れのルート証明書ファイルにより、SSL通信に失敗する際の対処法:https://qiita.com/y-ken/items/dac5ae8ad6bdbb0e0f17]] -[[DigiCertのroot証明書、中間証明書 ダウンロード:https://rms.ne.jp/sslserver/basis/digicert-root-certificates/]] -[[CA certificates extracted from Mozilla:https://curl.haxx.se/docs/caextract.html]] -[[Google roots.pem:https://pki.google.com/roots.pem]] ... 基本的にはこれで十分(但し、Let's Encryptは未対応?) -[[GeoTrust Root Certificates:https://www.geotrust.com/resources/root-certificates/index.html]] -[[digicert【マネージドCA】ルート証明書インストール方法:https://knowledge.digicert.com/ja/jp/solution/SO29755.html]] -[[DST Root CA X3 - IdenTrust:https://www.identrust.com/dst-root-ca-x3]] ... Let's Encryptを使うならこのRoot証明書を使用する ***Root証明書ファイルの有効期限を確認する方法 [#wdccf304] -任意のルート証明書ファイルの中身を確認 $ openssl x509 -text -noout -in 確認対象ファイル.pem -指定ディレクトリ以下のファイルを対象に一括で確認 $ find /etc/ssl/certs/*.pem -type f -exec echo "--------------------" \; -exec echo {} \; -exec bash -c "openssl x509 -text -noout -in {} | head" \; *[[Let's Encrypt:https://letsencrypt.org/ja/]] [#t19cc79e] -[[Let's Encrypt 総合ポータル:https://letsencrypt.jp/]] ... 非公式解説サイト -[[Let's Encrypt ユーザーガイド:https://free-ssl.jp/docs/using.html]] -[[無料SSL証明書のLet's Encryptとは?:https://ssl.sakura.ad.jp/column/letsencrypt/]] -[[Let's Encrypt の証明書をブラウザ上で簡単取得 (dns-01 / ECDSA もあるよ):https://qiita.com/tappie/items/76881fdf7996c57a105a]] -[[IPアドレス制限下でもcertbotの無料SSL証明書を発行してもらう方法:https://qiita.com/AkihiroTakamura/items/06ced4e780dc217bc1aa]] **Root証明書 [#bc5637e2] -[[Chain of Trust:https://letsencrypt.org/ja/certificates/]] -[[DST Root CA X3 - IdenTrust:https://www.identrust.com/dst-root-ca-x3]] ... Let's Encryptを使うならこのRoot証明書を使用する -[[無料SSL認証サービス「Let’s Encrypt」のルート証明書が全ての端末で信頼されるまで5年はかかりそう:https://gigazine.net/news/20180807-lets-encrypt-root-torasuted/]] -Let's Encryptでもルート証明書を発行しているが、現段階では多くのルート証明書ストアに採用されていない --Let's Encryptのルート証明書「ISRG Root X1」は、モダンなブラウザやOSでは既に利用可能となっており、今後は(Iden Trustから)独自のルート証明書へ移行していくことが発表されている --しかし、古いOSやスマートフォンなどには、このルート証明書が搭載されていないため、現在はIden Trustというルート認証局が運用する「[[DST Root CA X3:https://www.identrust.com/dst-root-ca-x3]]」というルート証明書でクロス署名された中間証明書を利用している --Iden TrustはISRGのスポンサーでもある **Windows [#c28f54ca] -[[IISでhttpsのサイトを作成する - SSLサイトの構成 (Windows Server Tips):https://www.ipentec.com/document/windows-windows-server-iis-setup-https-site]] -[[win-acme を利用してIISでLet's Encrypt を利用したSSLサイトを作成する (Windows Server Tips):https://www.ipentec.com/document/software-iis-ssl-certificate-using-win-acme]] -[[IISでLet's Encrypt を利用してSSLサイトを構築する (letsencrypt-win-simple クライアントを利用) (Windows Server 操作方法 Tips):https://www.ipentec.com/document/software-iis-ssl-certificate-using-lets-encrypt]] -[[Let’s EncryptでIIS上にSSLサイトを導入する方法:https://webbibouroku.com/Blog/Article/letsencrypt-setting]] -[[独自ドメインでDDNS運用するWindows Server 2016 EssentialsのSSL/TLS証明書をLet’s Encryptで無料取得/自動更新するように構成した:https://satsumahomeserver.com/blog/299605]] -[[制限と仕様からLet's Encrypt(ACMEv1)の話:https://qiita.com/sawanoboly/items/8e3c57aa2e30fc58c4e3]] **ASP.NET Coreの場合 [#bd174033] -[[Configuring LetsEncrypt for ASP.NET Core and IIS:https://weblog.west-wind.com/posts/2017/Sep/09/Configuring-LetsEncrypt-for-ASPNET-Core-and-IIS]] -[[Using Let’s encrypt with ASP.NET Core:https://www.softfluent.com/blog/dev/Using-Let-s-encrypt-with-ASP-NET-Core]] -【DocumentRoot】/web.config の以下の部分をコメントアウトする <system.webServer> <!-- <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> --> -【DocumentRoot】/.well-known/acme-challenge/web.config を配置 <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <httpRedirect enabled="false" /> <validation validateIntegratedModeConfiguration="false" /> <staticContent> <clear /> <mimeMap fileExtension="." mimeType="text/json" /> <mimeMap fileExtension=".*" mimeType="text/json" /> </staticContent> </system.webServer> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </configuration> -設定が完了したら【DocumentRoot?】/web.config のコメントアウトを解除する ***エラー対応 [#n3a9bd2c] -[[Let’s Encrypt Timeoutエラー:https://tulist.club/technology/ssl/2017/10/09/95]] -[[Acme server reported status 400 (on renewal)?:https://github.com/Lone-Coder/letsencrypt-win-simple/issues/560]] *ACME [#yed86370] -[[Automated Certificate Management Environment - Wikipedia:https://ja.wikipedia.org/wiki/Automated_Certificate_Management_Environment]] -[[Let's Encrypt を支える ACME プロトコル:http://jxck.hatenablog.com/entry/letsencrypt-acme]] *自己署名入り証明書 [#n662365a] -[[IIS で SSL/TLS を 自己署名入り証明書 で 設定 する方法:https://garafu.blogspot.com/2014/03/iis-ssltls.html]] *負荷 [#n554fca9] -[[HTTPSのコスト:https://rms.ne.jp/Introduction_to_https/sni.html]]