Bắt đầu với Chứng chỉ SSL Let's Encrypt trên Ubuntu

theanh

Administrator
Nhân viên
Hướng dẫn này sẽ hướng dẫn bạn cấu hình lần đầu tiên một trang web SSL có chứng nhận Let's Encrypt. Let's Encrypt là một cơ quan SSL mới cung cấp chứng chỉ SSL miễn phí. Chúng tôi sẽ sử dụng hai hướng dẫn hiện có (“Cách thiết lập trang web SSL tương thích trung gian với chứng chỉ Let's Encrypt” và “Máy chủ hoàn hảo - Ubuntu 15.10 (Wily Werewolf) với Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot và ISPConfig 3”).

Thiết lập được mô tả ở đây tương thích với bất kỳ máy chủ Ubuntu LAMP nào, vì vậy bạn cũng có thể sử dụng thiết lập này làm thiết lập cơ sở.

Hướng dẫn này sẽ chỉ cho bạn cách thiết lập Let's Encrypt trên Máy chủ không có ISPConfig 3 vì sẽ có bản triển khai trực tiếp dịch vụ Let's Encrypt trong bản phát hành ISPConfig 3 tiếp theo (phiên bản 3.1) sớm thôi. Vì vậy, nếu bạn định sử dụng ISPConfig, hãy đợi bản phát hành 3.1 và cả hướng dẫn mới.


Tạo trang web​

Bước đầu tiên là tạo cấu hình và thư mục trang web và bật SSL (Apache mod_ssl) cho trang web đó. Bạn có thể sử dụng cấu hình mặc định cho một trang web trên aserver hoặc bạn có kế hoạch sử dụng nhiều vhost để lưu trữ nhiều hơn một tên miền. Để sử dụng đáng tin cậy và có khả năng mở rộng hơn, tôi sẽ tạo cấu hình vhost cho tên miền "lab" isp1.cloudapp.net của mình từ Azure.

Theo mặc định, tất cả vhost đều được lưu trữ trong thư mục /etc/apache2/sites-available trên Ubuntu và Debian. Chạy lệnh sau để lấy danh sách các tệp cấu hình vhost hiện có.
Mã:
ls -l /etc/apache2/sites-available/
Đầu ra của tôi trông như thế này:
Mã:
root@isp1:/home/falco# ls -l /etc/apache2/sites-available/
Mã:
-rw-r--r-- 1 root root 1332 20 tháng 5 năm 2015 000-default.conf
Mã:
-rw-r--r-- 1 root root 6437 20 tháng 5 năm 2015 default-ssl.conf
Bây giờ chúng ta có thể sử dụng tệp cấu hình "mặc định" để sao chép và chỉnh sửa hoặc chúng ta có thể sử dụng cấu hình của riêng mình. Tôi thích sử dụng cấu hình của riêng mình vì tôi đã làm như vậy trong nhiều năm, vì vậy hãy tạo một vhost mới bằng cách tạo tệp:
Mã:
vi /etc/apache2/sites-available/isp1.cloudapp.net.conf
Trong tệp này, hãy dán nội dung sau:
Mã:
[I]
 ServerName isp1.cloudapp.net
 ServerAlias [URL=http://www.isp1.cloudapp.net?utm_source=diendancongnghe.com]www.isp1.cloudapp.net[/URL][URL=http://www.isp1.cloudapp.net?utm_source=diendancongnghe.com]
[/URL]
 DocumentRoot /home/web/isp1.cloudapp.net/public_html

 Nhật ký lỗi /home/web/isp1.cloudapp.net/log/habdak.eu_error_log
 Nhật ký tùy chỉnh /home/web/isp1.cloudapp.net/log/habdak.eu_access_log combinedScriptAlias /cgi-bin/ /home/web/isp1.cloudapp.net/cgi-bin/
 DirectoryIndex index.html index.htm index.php index.php4 index.php5

 
 Tùy chọn -Chỉ mục +Bao gồmNOEXEC +SymLinksIfOwnerMatch +ExecCGI
 cho phép từ tất cả
 Cho phép ghi đè tất cả Tùy chọn=ExecCGI,Bao gồm,Bao gồmNOEXEC,Chỉ mục,Nhiều chế độ xem,SymLinksIfOwnerMatch
 Yêu cầu tất cả đã cấp
 AddType application/x-httpd-php .php
 AddType application/json .json
 

 
 cho phép từ tất cả
 Cho phép ghi đè tất cả Tùy chọn=ExecCGI,Bao gồm,Bao gồmNOEXEC,Chỉ mục,Nhiều chế độ xem,SymLinksIfOwnerMatch
 Yêu cầu tất cả đã cấp
 

 RemoveHandler .php
 RemoveHandler .php5
 php_admin_value engine Tắt
 IPCCommTimeout 301
 FcgidMaxRequestLen 1073741824
 php_value memory_limit 128M
 php_value suhosin.session.encrypt Tắt





 ServerName isp1.cloudapp.net
 ServerAlias [URL=http://www.isp1.cloudapp.net?utm_source=diendancongnghe.com]www.isp1.cloudapp.net[/URL]
 DocumentRoot /home/web/isp1.cloudapp.net/public_html

 ErrorLog /home/web/isp1.cloudapp.net/log/habdak.eu_error_log
 CustomLog /home/web/isp1.cloudapp.net/log/habdak.eu_access_log combined

 ScriptAlias /cgi-bin/ /home/web/isp1.cloudapp.net/cgi-bin/
 DirectoryIndex index.html index.htm index.php index.php4 index.php5

 
 Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
 allow from all
 AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
 Require all granted
 AddType application/x-httpd-php .php
 AddType application/json .json
 

 
 allow from all
 AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
 Require all granted
 

 RemoveHandler .php
 RemoveHandler .php5
 php_admin_value engine Off
 IPCCommTimeout 301
 FcgidMaxRequestLen 1073741824
 php_value memory_limit 128M
 php_value suhosin.session.encrypt Off

 SSLEngine on
 SSLCertificateFile /home/web/isp1.cloudapp.net /ssl.cert
 SSLCertificateKeyFile /home/web/isp1.cloudapp.net /ssl.key
 SSLCACertificateFile /home/web/isp1.cloudapp.net /ssl.ca
 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECD SA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-A ES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AE S256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128 -SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-R SA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SH A256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
 SSLProtocol All -SSLv2 -SSLv3
 SSLCompression off
 SSLHonorCipherOrder On

[/I]
Thay thế tên miền bằng tên miền của bạn ở bất kỳ nơi nào nó xuất hiện và lưu tệp. Để kích hoạt cấu hình, hãy chạy:
Mã:
[I]a2ensite isp1.cloudapp.net.conf[/I]
Bây giờ hãy tạo các thư mục cho trang web:
Mã:
[I]mkdir /home/web[/I]
Mã:
[I]mkdir /home/web/isp1.cloudapp.net[/I]
Mã:
[I]mkdir /home/web/isp1.cloudapp.net/public_html[/I]
Mã:
[I]mkdir /home/web/isp1.cloudapp.net/cgi-bin[/I]
Mã:
[I]mkdir /home/web/isp1.cloudapp.net/logs[/I]
Khởi động lại apache để áp dụng cấu hình mới:
Mã:
[I]sudo service apache2 khởi động lại[/I]
Bây giờ chúng ta phải tạo các tệp chứng chỉ.


Cài đặt Let's Encrypt và tạo Chứng chỉ SSL đầu tiên của bạn​

Tôi thích sử dụng thông tin đăng nhập gốc để quản trị thay vì chạy sudo trước mỗi lệnh, vì vậy hãy su thành người dùng gốc:
Mã:
[I]sudo su[/I]
Điều hướng đến thư mục gốc của bạn:
Mã:
[I]cd ~root[/I]
Cài đặt git để tải các tệp kho lưu trữ git Let's Encrypt:
Mã:
[I]apt-get install git[/I]
Bây giờ hãy sao chép kho lưu trữ git Let's Encrypt:
Mã:
[I]git clone[/I] [I][URL=https://github.com/letsencrypt/letsencrypt.git?utm_source=diendancongnghe.com]https://github.com/letsencrypt/letsencrypt.git[/URL] letsencrypt[/I]
Điều hướng đến thư mục letsencrypt mới của bạn:
Mã:
[I]cd letsencrypt[/I]
Và yêu cầu chứng chỉ SSL của bạn:
Mã:
[I]./letsencrypt-auto certonly --webroot -w /home/web/isp1.cloudapp.net/public_html -d isp1.cloudapp.net[/I]
Nếu bạn yêu cầu chứng chỉ cho miền chính (Miền cấp 1st hay còn gọi là cloudapp.net) sử dụng tham số -d hai lần. Có và không có tiền tố www như sau:
Mã:
[I] ./letsencrypt-auto certonly --webroot -w /home/web/cloudapp.net/public_html -d cloudapp.net -d [URL=http://www.cloudapp.net?utm_source=diendancongnghe.com]www.cloudapp.net[/URL][/I]
Nếu bạn không thực hiện thao tác này, chứng chỉ sẽ không hợp lệ đối với khách truy cập mở trang web của bạn bằng tiền tố www.

Bạn cũng có thể thêm các miền phụ khác vào một chứng chỉ. Ví dụ: nếu miền phụ admin.cloudapp.net của bạn khớp với cùng một trang web (cùng một thư mục trên máy chủ), bạn cũng nên thêm miền phụ đó vào chứng chỉ này. Thật không may, bạn không thể sử dụng ký tự đại diện như (*.cloudapp.net) với let's encrypt.

Let's Encrypt sẽ tự động cập nhật tất cả các phụ thuộc và hướng dẫn bạn thiết lập. Tất cả những gì bạn cần làm là đợi cửa sổ nhắc yêu cầu bạn nhập địa chỉ email. Địa chỉ này chỉ được sử dụng để khôi phục dữ liệu đã mất.

Khóa mới của bạn hiện được lưu trữ trong /etc/letsencrypt/ theo mặc định. Chúng tôi sẽ liên kết chúng với thư mục trang web của mình để có thể quản lý các khóa sau.
Mã:
[I]ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/cert1.pem /home/web/isp1.cloudapp.net/ssl.cert[/I]
Mã:
[I]ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/chain1.pem /home/web/isp1.cloudapp.net/ssl.ca[/I]
Mã:
[I]ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/privkey1.pem /home/web/isp1.cloudapp.net/ssl.key[/I]
Bây giờ bạn có thể truy cập trang web của mình bằng SSL. Let's Encrypt sẽ tự động thông báo cho bạn về các chứng chỉ hết hạn kịp thời bằng cách gửi cho bạn một email đến địa chỉ bạn đã cung cấp khi cài đặt Let's Encrypt.
 
Back
Bên trên