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