Cấu hình domain, subdomain + SSL với Google Domains và Nginx trên CentOS

3 min read


Bước 1: Cấu hình bản ghi trên Google Domains

  1. Truy cập Google Domains, chọn domain cần cấu hình, hoặc mua domain mới nếu chưa có.



  2. Tại thanh menu bên phải, chọn vào mục DNS





  3. Tìm đến mục Bản ghi tùy chỉnh, tạo bản ghi loại A như sau:
    • Tên máy chủ lưu trữ: Để trống
    • Loại: A
    • Dữ liệu: Địa chỉ IP máy chủ của bạn
      Ví dụ:


      Tương tự với subdomain:

    • Tên máy chủ lưu trữ: Subdomain bạn muốn đặt
    • Loại: A
    • Dữ liệu: Địa chỉ IP máy chủ của bạn
      Ví dụ:

      Như vậy, ta đã trỏ được domain về máy chủ.

Bước 2: Thiết lập HTTPS

Để thiết lập HTTPS trên trang web của mình, bạn cần yêu cầu chứng chỉ SSL/TSL từ một nhà phát hành chứng chỉ. Google Domains đã có một bài viết hướng dẫn cách làm điều này. Bạn có thể tham khảo qua, hoặc tiếp tục đọc bài viết của tôi. Tôi sẽ tóm tắt lại cách làm như sau:
  1. Truy cập vào Google Domains
  2. Chọn miền mà bạn muốn lấy chứng chỉ.
  3. Ở trên cùng bên trái, hãy nhấn vào biểu tượng Trình đơn Trình đơn sau đó Bảo mật.


  4. Trong mục "Chứng chỉ SSL/TLS cho miền của bạn", hãy mở rộng "Google Trust Services".


  5. Nhấp vào Lấy khoá EAB.
    • Một hộp thoại sẽ mở ra cùng 2 giá trị, "Giá trị nhận dạng khoá EAB" và "Khoá HMAC EAB".
    • Sao chép cả hai giá trị này bằng cách nhấn vào nút Sao chép bên cạnh mỗi giá trị.  
  6. Tại máy chủ CentOS (tôi dùng CentOS 7), cấu hình cho ứng dụng ACME Certbot như sau:
    • Cài đặt certbot (nếu chưa có)
      sudo yum install certbot-nginx
    • Đăng ký tài khoản certbot (nếu chưa có) với EAB_KEY_ID và EAB_HMAC_KEY lấy được ở bước 5
      certbot register --email  --no-eff-email --server "https://dv.acme-v02.api.pki.goog/directory"  --eab-kid "" --eab-hmac-key ""
    • Dừng chạy Nginx
      sudo service nginx stop
    •  Cấp chứng chỉ bằng cách chạy:
      certbot certonly -d  --server "https://dv.acme-v02.api.pki.goog/directory" --standalone
      Thay <YOUR_DOMAIN> thành domain hoặc subdomain của bạn. Ví dụ: 
      certbot certonly -d domain.com --server "https://dv.acme-v02.api.pki.goog/directory" --standalone
      certbot certonly -d example.domain.com --server "https://dv.acme-v02.api.pki.goog/directory" --standalone

    • Bạn sẽ nhận được 2 file fullchain.pem và privatekey.pem. Hãy lưu lại đường dẫn đến 2 file này

Bước 3: Cấu hình Nginx

  1. Tạo file cấu hình nginx mới:
    sudo nano /etc/nginx/conf.d/yourdomain.conf
  2. Cấu hình file trên và lưu lại (nhớ thay example.domain.com thành domain/subdomain của bạn) như sau:
    server {
        listen 80;
        listen [::]:80;
        server_name example.domain.com;
    
        return 301 https://$host$request_uri;
    }
    
    server {
            listen       443 ssl http2;
            listen       [::]:443 ssl http2;
            server_name  example.domain.com;
    
        root /webroot/pages/example; # thay thành đường dẫn đến thư mục chứa trang web trên máy chủ của bạn
    
        index index.php index.htm index.html;
    
        charset utf-8;
             ssl_certificate "/etc/letsencrypt/live/example.domain.com/fullchain.pem";
             ssl_certificate_key "/etc/letsencrypt/live/example.domain.com/privkey.pem";
             ssl_session_cache shared:ssl:1m;
             ssl_session_timeout  10m;
             ssl_ciphers high:!anull:!md5;
             ssl_prefer_server_ciphers on;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
     }
  3. Khởi động lại nginx:
    sudo service nginx restart

Vậy là xong rồi đó. Chúc các bạn thành công!
Bận cà phê, bận chơi.

Bạn có thể thích những bài đăng này

  • Bước 1: Truy cập trang https://dev.mysql.com/downloads/repo/yum/ trên trình duyệt. Trang web sẽ hiển thị các phiên bản và định danh của các phiên bản đó. Bước 2: Trê…
  • Cài đặt Redis Để cài đặt redis trên CentOS, ta gõ lệnh: sudo yum install redis Khởi động redis service và kiểm tra trạng thái Để khởi động redis service, gõ lệnh: sudo s…
  • Bước 1: Cấu hình bản ghi trên Google DomainsTruy cập Google Domains, chọn domain cần cấu hình, hoặc mua domain mới nếu chưa có.Tại thanh menu bên phải, chọn vào mục DNSTìm đến mục&…
  • Cấu hình cho web HTML tĩnh server { listen <PORT>; listen [::]:<PORT>; server_name <SERVER_NAME_OR_IP>; root <PATH_TO_WEB_FOLDER>; …
  • Bước 1: Sửa file cấu hình MySQLTrên terminal gõ lệnh:sudo nano /etc/my.cnfThêm dòng lệnh sau:bind-address = 0.0.0.0Lưu và đóng file cấu hình lại, sau đó khởi động lại MySQL service…
  • Cách 1: Cài Nodejs qua NodeSource repository1. Tải và cài đặt NodeSource repository:Với phiên bản 10xcurl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -Với phiên bản …

Đăng nhận xét