Saturday, December 5, 2015

Free SSL cho Google App Engine

Let’s Encrypt (https://letsencrypt.org/) cung cấp một công cụ để mọi người có thể tạo SSL Certificate hoàn toàn miễn phí. Còn Google App Engine lại cung cấp một dạng hosting miễn phí cho các ứng dụng. Kết hợp lại chúng ta sẽ có một server hỗ trợ SSL.

Bài này hướng dẫn vài bước đơn giản để đưa SSL vào domain của bạn trên AppEngine.

Note: bạn phải sử dụng máy Mac hoặc Linux để chạy command line.

Trước hết, download client tool

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

Tạo free certificate

sudo ./letsencrypt-auto -a manual certonly

Lúc này, nó sẽ yêu cầu bạn xác nhận domain bằng một thông báo đại loại thế này:

Make sure your web server displays the following content at 
http://www.example.com/.well-known/acme-challenge/{challenge 1} before continuing:
{response 1}
Content-Type header MUST be set to text/plain.
...
Press ENTER to continue

Bạn cần phải đưa vài dòng source code lên server AppEngine của mình. Lưu ý là không nhấn [ENTER] trước khi bạn đưa những dòng code xử lý request lên server của mình.

Đây là mẫu viết bằng Python, và bạn cần copy {challenge} và {response} vào đúng chỗ, để nó có thể xác nhận chính xác:

class LetsEncryptHandler(RequestHandler):

    def get(self, challenge):
        self.response.headers['Content-Type'] = 'text/plain'
        responses = {
                    '{challenge 1}': '{response 1}'
                    '{challenge 2}': '{response 2}'
                }
        self.response.write(responses.get(challenge, ''))

application = WSGIApplication([
    ('/.well-known/acme-challenge/([\w-]+)', LetsEncryptHandler),
])

Tiếp theo là trở lại command line và nhấn [ENTER]. Kết quả là bạn đã có certificate, nhưng nếu bạn mở file private key ra sẽ thấy dòng này -----BEGIN PRIVATE KEY-----. Và chia buồn với bạn là Google App Engine không support SSL theo phương thức này.

Bạn cần phải đổi sang RSA, với câu lệnh:

sudo openssl rsa -in /etc/letsencrypt/live/www.example.com/privkey.pem | less

Giờ thì bạn chỉ cần copy, và vào App Engine > Settings > SSL Certificates, tạo một Certificate và dán private key và public key (file /etc/letsencrypt/live/www.example.com/fullchain.pem) tương ứng vào.

Nhớ đặt cái tên để còn biết. Hihi.

No comments:

Post a Comment

Biểu mẫu liên hệ

Name

Email *

Message *