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.
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ó.
Đầu ra của tôi trông như thế này:
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:
Trong tệp này, hãy dán nội dung sau:
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:
Bây giờ hãy tạo các thư mục cho trang web:
Khởi động lại apache để áp dụng cấu hình mới:
Bây giờ chúng ta phải tạo các tệp chứng chỉ.
Điều hướng đến thư mục gốc của bạn:
Cài đặt git để tải các tệp kho lưu trữ git Let's Encrypt:
Bây giờ hãy sao chép kho lưu trữ git Let's Encrypt:
Điều hướng đến thư mục letsencrypt mới của bạn:
Và yêu cầu chứng chỉ SSL của bạn:
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:
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.
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.
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/
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
Mã:
vi /etc/apache2/sites-available/isp1.cloudapp.net.conf
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]
Mã:
[I]a2ensite isp1.cloudapp.net.conf[/I]
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]
Mã:
[I]sudo service apache2 khởi động lại[/I]
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]
Mã:
[I]cd ~root[/I]
Mã:
[I]apt-get install git[/I]
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]
Mã:
[I]cd letsencrypt[/I]
Mã:
[I]./letsencrypt-auto certonly --webroot -w /home/web/isp1.cloudapp.net/public_html -d isp1.cloudapp.net[/I]
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]
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]