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.

40 cách giúp bạn giữ lửa sáng tạo

Thông tin này khá thú vị, mọi người xem hình infography bên dưới nhé:


Monday, May 4, 2015

Làm sao để thẻ DIV trở thành unselectable?

Đôi khi vì nhu cầu, chúng ta cần làm cho các thẻ DIV trên trang web của mình không thể bôi đen hoặc chọn được. Nhiều người tò mò về việc làm thế nào làm được chuyện này. Thực ra phương pháp rất đơn giản, nhưng trước hết, tôi xin đề cập đến chuyện "Tại sao chúng ta cần việc này?"

Có 2 lý do chính:
  1. Vì ứng dụng cần như thế. Ví dụ bạn viết một cái game, và không muốn trình duyệt bôi đen khi người dùng nhấp đôi chuột hoặc Ctrl-A.
  2. Vì không muốn để người khác dễ dàng copy.

Saturday, April 25, 2015

HTTP/2 là gì?

Nói ngắn gọn, HTTP/2 là phiên bản tiếp theo của chuẩn HTTP. Chuẩn HTTP là chuẩn định nghĩa truyền nhận dữ liệu trên internet, là cái mà bạn luôn thấy ở các địa chỉ trang web.

Chuẩn HTTP/2 này đang gần hoàn thành, nếu không có gì thay đổi thì khoảng tháng 8 năm 2015 sẽ hoàn tất, và việc tiếp theo là triển khai và viết tài liệu hướng dẫn.

Kể từ khi phát hành HTTP/1.1 tới nay đã hơn 15 năm, nhưng chưa có một cải tiến nào đáng kể trong thế giới internet thay đổi không ngừng. Nay, IETF HTTP Working Group đề xuất phiên bản tiếp theo của HTTP với nhiều cải tiến lớn. Rất nhiều cải tiến được lấy cảm hứng từ SPDY của Google. Tôi sẽ điểm qua một số điểm nhấn chính đáng mong đợi.

Sunday, March 15, 2015

Để viết blog hiệu quả

Tôi viết bài này để chia sẻ kinh nghiệm của tôi về việc viết blog. Cách đây không lâu, có người nói rằng tôi thường hay viết blog, và viết cũng khá tốt, và người ta hỏi tôi về phương pháp làm sao viết hiệu quả, vì người ta cũng cố gắng viết nhưng hầu hết là không publish ra được. Người ta hỏi tôi chỉ bởi vì tôi đã viết khá nhiều blog và cũng đã viết khá nhiều bài.

Gần đây thì có một vài người đặt vấn đề này lại với tôi. Tôi nghĩ tôi có thể chia sẻ trên blog của mình để những người khác nữa có thể tìm hiểu và tham khảo cách tiếp cận của tôi. Đôi khi giúp ích cho một ai đó.

Saturday, March 14, 2015

Note: Tài khoản Viettel ADSL/FTTH cho thanh toán online

Bài viết ngắn này chỉ dùng để note lại và là guide cho những người chưa biết.

Bạn nào đã từng thanh toán hoá đơn trên Internet Banking chắc chắn biết những gì chúng ta cần là thông tin tài khoản (còn được gọi là mã khách hàng, hoặc số thuê bao). Để thanh toán bằng Internet banking, trước hết bạn phải có tài khoản đăng nhập vào dịch vụ Internet Banking của ngân hàng của bạn. Với điều kiện ngân hàng của bạn hỗ trợ dịch vụ Thanh toán hoá đơn ADSL của Viettel mới được.

Mặc dù bạn đang dùng cáp quang (FTTH) nhưng khi thanh toán bạn vẫn phải chọn dịch vụ là Thanh toán ADSL, với đúng nhà cung cấp là Viettel (có nhiều tỉnh thành, và bạn phải chọn đúng).

Monday, March 9, 2015

TLDR - Cải thiện tốc độ tải trang web?

Điều đầu tiên bạn cần nhớ: Hãy luôn kiểm tra các chỉ số.

Chúng ta có rất nhiều công cụ để đo lường về tốc độ tải trang, mà tôi thì khá thích sử dụng PageSpeed Insight của Google. Và tất nhiên là còn rất nhiều công cụ khác mà bạn có thể tìm kiếm trên internet.

Hãy thử test xem website của bạn được bao nhiêu điểm?

Biểu mẫu liên hệ

Name

Email *

Message *