Để có thể cài chứng chỉ SSL cho Apache thì trước tiên bạn cần cài thêm mod_ssl của Apache với lệnh sau:
yum install mod_ssl
Bây giờ bạn hãy tạo một thư mục để lưu các file chứng chỉ SSL vào để bước cuối ta có thể dễ dàng gắn vào VirtualHost nhé, mình khuyến khích là tạo trong thư mục /etc/httpd cho dễ quản lý, ví dụ mình sẽ tạo một folder tên là /etc/httpd/ssl.
mkdir /etc/httpd/ssl
Trước tiên chúng ta sẽ cần tạo ra một Server Private Key cho server mà bạn cần cài đặt và kích hoạt SSL, mỗi server chỉ cần một Server Private Key là đủ.
Bây giờ mình muốn tạo server private key mang tên itctoday.com.key thì sẽ dùng lệnh sau để tạo, nhớ là lưu trong thư mục lưu chứng chỉ đã tạo ở trên nhé.
openssl genrsa -out /etc/httpd/ssl/itctoday.com.key 2048
Thông báo sau khi tạo xong.
Ở bước này sẽ khá quan trọng và nó sẽ quyết định xem chứng chỉ SSL của bạn đã mua có thể chạy được trên server hay không.
Do cuối cùng ta phải cần một file tên là .crt để kích hoạt SSL cho website nên ta sẽ cần tạo một CSR Key (Certificate Signing Request) để tạo ra một chuỗi mã hóa đặc biệt nhằm gửi yêu cầu xác thực chứng chỉ SSL cho domain mà mình cần thiết lập, hay nói đúng hơn là sau khi bạn gửi CSR Key đến nhà cung cấp, họ sẽ cấp cho bạn một file CRT phù hợp với CSR của bạn.
Mỗi domain sẽ có một CSR riêng biệt nên bạn sẽ cần làm lại bước này nếu sau này muốn xác thực cho các domain khác trên cùng server. Và mỗi khi chuyển server, bạn cũng cần tạo một CSR Key mới.
Ví dụ trên server của mình đã có một file Server Private Key tên là /etc/httpd/ssl/itctoday.com.key và mình muốn tạo thêm một file tên CSR là /etc/httpd/ssl/itctoday.com.csr thì sẽ viết lệnh như sau:
openssl req -new -key /etc/httpd/ssl/itctoday.com.key -out /etc/httpd/ssl/itctoday.com.csr
Và bây giờ, bạn sẽ nhập các thông tin sau (gõ không dấu). Bạn điền từ từ, nếu điền sai hãy ấn Ctrl + X (hoặc Ctrl + C, Ctrl + Z) rồi chạy lại lệnh trên để điền lại.
Và đây là mẫu điền:
Country Name (2 letter code) [XX]:VN
State or Province Name (full name) []: TP HCM
Locality Name (eg, city) [Default City]: Quan 1
Organization Name (eg, company) [Default Company Ltd]: ITC TODAY
Organizational Unit Name (eg, section) []: Tech News
Common Name (eg, your name or your server’s hostname) []: itctoday.com
Email Address []: info@itctoday.com
Nếu nó không hỏi gì nữa thì bạn đã tạo xong, bây giờ bạn đã có một cái CSR Key được lưu trong file .csr, đó là key mà chúng ta sẽ sử dụng để kích hoạt chứng chỉ SSL tại nơi mà bạn đã mua.
Bây giờ mình vào Namecheap (SSL mình mua giá chỉ 9$/ năm, các bạn có thể đăng ký ở nhà cung cấp khác 😆 ) vào phần Product List -> SSL Certificates và ấn vào nút Activate Now ở cái SSL mà bạn đã mua.
Sau đó chọn loại webserver Apache + MOD SSL và copy cái nội dung file .csr của bạn vào.
Ấn Next và chọn xác thực bằng cách thêm record vào tên miền, điền thông tin cá nhân, nhập email cần nhận key chứng thực và ấn Submit Order.
Việc còn lại là chờ nhà cung cấp gửi record để bạn active. Nếu muốn nhanh bạn có thế chat online trực tiếp với nhân viên hỗ trợ, họ sẽ phản hồi ngay cho bạn (thường mình chat lúc nào họ cũng trả lời, và rất nhanh 🙂 )
Link chat online: https://www.namecheap.com/support/live-chat/ssl.aspx
Sau khi hoàn tất active thành công domain, bạn check mail sẽ nhận được 1 file .rar (trong đó có 2 file: .ca-bundle và .crt)
Sau khi kích hoạt xong (trỏ record DNS) họ sẽ gửi qua email bạn đăng ký ở trên một bộ key chứng thực SSL, giải nén ra bạn sẽ được 2 file: .ca-bundle và .crt, hãy upload tất cả vào thư mục /etc/httpd/ssl. Sau đó mở tập tin /etc/httpd/conf.d/ssl.conf lên và tìm cặp thẻ <VirtualHost _default_:443>……….</VirtualHost> rồi xóa đi và chèn đoạn này vào:
<VirtualHost *:443>
DocumentRoot “/home/itc/public”
ServerName itctoday.com:443SSLEngine on
SSLCertificateFile /etc/httpd/ssl/itctoday.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/itctoday.com.key
CustomLog logs/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
</VirtualHost>
Bạn thay toàn bộ thông tin trên thành của bạn nha, cụ thể:
Lưu lại, khởi động lại Apache.
service httpd restart
Sau đó xóa cookie và cache trình duyệt rồi truy cập vào domain với dạng https://itctoday.com, hoặc dùng trình duyệt khác mà kiểm tra.
Theo: Thạch Phạm
Nguồn: https://thachpham.com