Ssl | iii threetreeslight

May 13, 2018

Generate SSL/TLS certificate with let's encrypt

gcpにはaws acmに該当するサービスがないので、証明書を作成しなければいけない。 そのため、Let’s encryptを利用した証明書発行を行う。 Let’s encryptとは Let’s Encrypt is a free, automated, and open certificate authority (CA), run for the public’s benefit. It is a service provided by the Internet Security Research Group (ISRG). 通信の安全を担保するためにも全ての通信がssl/tls ptorocolでの通信する必要がある。 そのためにも、free and automatedなCAっていうのが大事。それを提供しているのがlet’s encryptedという認識です。 let’s encryptによる証明書の発行にはshell accessとそうでない方法ががあり、shell accessを前提としたcertbot ACME clinetを使うと良いよということのようだ。 We recommend that most people with shell access use the Certbot ACME client. It can automate certificate issuance and installation with no downtime. ... Read more

April 9, 2014


まずこちら。 OpenSSLの重大バグが発覚。インターネットの大部分に影響の可能性 早急に対応しましょう。 公式 OpenSSL Security Advisory [07 Apr 2014] TLS heartbeat read overrun (CVE-2014-0160) A missing bounds check in the handling of the TLS heartbeat extension can be used to reveal up to 64k of memory to a connected client or server. Only 1.0.1 and 1.0.2-beta releases of OpenSSL are affected including 1.0.1f and 1.0.2-beta1. Thanks for Neel Mehta of Google Security for discovering this bug and to Adam Langley agl@chromium. ... Read more

April 6, 2014

[ios][objective-c] ios > 7でオレオレ(self-signed)証明書を通す

VMへiosからhttpsリクエスト飛ばしたい。 で、validateでない証明書へのアクセスではkCFStreamErrorDomainSSL errorが起こる なんだかんだ困った。 解決案は3つ NSURLRequestをoverrideしてsslをverifyしないようにする デバイス(ハード)にSSL食べさせちゃう オレオレSSL certificateをresouceについかして、こいつのときは許可するようにする require xcode > 5 ios > 7 サービス名は、vm上はhoge.localでhostsを切っている オレオレ証明書作って $ openssl genrsa -out hoge-local.key 2048 $ openssl req -new -key hoge-local.key -out hoge-local.csr --- Common Name (eg, YOUR name) []:*.hoge.local $ openssl rsa -in hoge-local.key -out hoge-local.key $ openssl x509 -req -days 3650 -in hoge-local.csr -signkey hoge-local.key -out hoge-local.crt 作って、nginxやapacheはよしなに。 1. NSURLRequestのoverride やっちゃ行けない技だと分かっていながら、やってみる。 $ vim NSURLRequest+IgnoreSSL #ifdef DEBUG @interface NSURLRequest (IgnoreSSL) +(BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; @end @implementation NSURLRequest (IgnoreSSL) +(BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host {return YES;} @end #endif これで通る。 ... Read more

March 14, 2014

nginxでssl reverse proxy設定

rails上でforce_ssl設定した後、redirect loopが発生したので、その際のnginx上の設定留意点も含め、書き残したいと思います。 システムスタックとしては以下の通りです。 rails 4 foreman unicorn nginx centos 設定ファイル $ vim /etc/nginx/sites-available/ server { listen 80; listen 443 ssl; server_name; access_log /var/log/nginx/; ssl on; ssl_certificate /etc/nginx/; ssl_certificate_key /etc/nginx/; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; keepalive_timeout 70; location ~ ^/assets/ { root /var/www/; break; } location / { if (-f $request_filename) { break; } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_pass http://localhost:5000; error_page 404 /404. ... Read more

March 1, 2014

error: SSL certificate problem: Invalid certificate chain while accessing発生時の対応

いきなりgit pushが通らない! error: SSL certificate problem: Invalid certificate chain while accessing こんなエラーで苦しめられました。 考えられる原因その1 大体悪いヤツはMavericksの友達。 curlのバージョンが上がるせいか、–certと–cacertがぶっ壊れる。 Important note for curl users on OS X Mavericks 10.9 Mavericks: curl 7.30.0 (x86_64-apple-darwin13.0) libcurl/7.30.0 SecureTransport zlib/1.2.5 Mountain Lion: curl 7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5 TLDR: Mavericks moves from curl 7.24.0 to 7.30.0, and now –cacert and –cert are broken. Wouldn’t this break in general for a lot of folks? I’m getting MacPorts up and running in Mavericks, in order to build newer curl and test further. ... Read more

September 26, 2013

Cent os 5.6でcurlしようとしたら怒られた。

vagrantで古いboxを立ち上げて、chefでcookingしようとしたら怒られた。 初体験。 原因 サーバーのSSL CA証明書が古いのが原因 curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). The default bundle is named curl-ca-bundle.crt; you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). ... Read more

August 26, 2013


userのloginとかcontact formとか基本的にhttpsで通信すると思います。 で、そのままrequest_rspecでhttpsのページをgetしようとすると、www.example.comに301転送される。 そういうときはget methodにパラメータを追加 get root_contact_path, {}, "HTTPS" => "on" request.env[‘HTTPS’] = ‘on’ leads to NoMethodError また、rspecにおけるbasic auth対応の方法によるbasic auth方法を利用している場合は、 @env["HTTPS"] = 'on' get root_contact_path, {}, @env

May 14, 2013


やりたい事 SSL通信を特定のコントローラーのみに固定する production環境時のみ適応させる ssl設定 class FoobarController < ApplicationController force_ssl :only => ['show'] end 参考 270: Rails 3.1の認証機能 備忘録をかねて。

April 22, 2013


herokuでhttpsアクセスできるようにしたいので、RapidSSL使います。 csr作成 $ openssl genrsa -des3 -out server.orig.key 2048 $ openssl rsa -in server.orig.key -out server.key $ openssl req -new -key server.key -out server.csr 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 '. ... Read more