oneinstack如何安裝ssl證書和配置Let's Encrypt免費SSL證書教程匯總(轉)


OneinStack包含以下組合:
lnmp(Linux + Nginx+ MySQL+ PHP)

LNMP安裝SSL安全證書 部署HTTPS:https://www.gworg.com/ssl/309.html
lamp(Linux + Apache+ MySQL+ PHP)

APACHE安裝SSL證書:https://www.gworg.com/ssl/106.html
Apache自動跳轉到 HTTPS:https://www.gworg.com/ssl/130.html
lnmpa(Linux + Nginx+ MySQL+ PHP+ Apache):Nginx處理靜態,Apache(mod_php)處理動態PHP

Nginx安裝SSL證書:https://www.gworg.com/ssl/107.html
Nginx 自動跳轉到HTTPS:https://www.gworg.com/ssl/167.html
lnmt(Linux + Nginx+ MySQL+ Tomcat):Nginx處理靜態,Tomcat(JDK)處理JAVA
lnmh(Linux + Nginx+ MySQL+ HHVM)



LNMP安裝SSL安全證書 部署HTTPS

 

第一步、部署HTTPS基礎工作准備
選用正規的SSL域名證書

 

第二步、上傳和部署SSL證書

A - 把上面的一個CRT一個KEY文件上傳到VPS ROOT目錄中,然后對應修改成SSL.CRT和SSL.KEY文件名,或者我們用作其他命令都可以。

B - 解密私鑰和設置權限

openssl rsa -in ssl.key -out /root/ssl.key
chmod 600 /root/ssl.key

登錄SSH,執行上述兩行腳本,解密私鑰和授權。

第三步、在LNMP環境部署站點SSL設置

我們需要在已有的LNMP添加了站點,然后在站點對應的CONF文件設置。

在"/usr/local/nginx/conf/vhost/"目錄文件中,找到對應站點的conf文件,然后修改設置如下

server
{
listen 80;
 listen 443 ssl;
#listen [::]:80;
ssl on;
        ssl_certificate /root/ssl.crt;
        ssl_certificate_key /root/ssl.key;
server_name gworg.com www.gworg.com;

上面的紅色標注部分是我添加的,對應路徑我們要與之前上傳的CRT和KEY文件路徑對應以及文件名不要搞錯。

最后,我們重啟LNMP,可以看到SSL證書生效,且HTTPS可以訪問站點。


 

 

APACHE安裝SSL證書

 
 

SSL從購買到安裝分為一下步驟:

  1. 提交CSR  & 使用自動生成CSR

  2. 驗證域名所有權

  3. 簽發證書

  4. 下載服務器證書

在我們網站購買的客戶,下載Apache格式的證書

解壓后應包含三個文件:

yourdomain.com.crt     (服務器證書)
yourdomain.com.key   (私鑰文件)如果為空請將生成CSR時保存的私鑰內容粘貼在文件中
yourdomain.com.ca-bundle  (根證書鏈)

下面介紹如何安裝Apache. 首要條件就是 apache 已經安裝了 mod_ssl.so 模塊 。

檢測方法使用以下命令:

httpd -M | grep mod_ssl

如果有顯示 mod_ssl.so 表示已經安裝了apache模塊。

CentOS/Redhat安裝mod_ssl.so

yum install mod_ssl

Debian/Ubuntu

sudo a2enmod ssl
sudo service apache2 restart

 

Apache SSL配置

Listen 443  (如果配置已經存在就不要加)
LoadModule ssl_module modules/mod_ssl.so (如果配置已經存在就不要加)
NameVirtualHost *:443 (非必須,配置多個SSL站點會需要)
<VirtualHost *:443>
ServerName www.gworg.cn
ServerAlias gworg.cn
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/ssl/server.crt 
SSLCertificateKeyFile /etc/ssl/server.key 
SSLCertificateChainFile /etc/ssl/server.ca-bundle
</VirtualHost>

以上只是SSL配置范例,盡量不要直接應用於生產環境,請根據80端口的站點配置修改。
證書可以放在其他位置,沒有強制要求
ServerName 和 ServerAlias 需要修改

配置完成重啟Apache使其生效.

service httpd restart

使用https://yourdomain.com 測試是否可以訪問。

 

問題排查:

如果使用CDN(加速器),需要在CDN上面安裝證書,國內免費加速的都不支持https(已知阿里雲cdn支持)

檢查443端口是否啟動   使用下面命令 netstat -apnt | grep 443    (如果沒有啟動檢查配置文件或者端口是否沖突)

443端口如果已經啟動,但不能訪問,請檢查防火牆(或者安全狗) ,允許443端口.

linux iptables使用下面命令:

iptables -A INPUT -p tcp -m tcp --dport https -j ACCEPT


Apache自動跳轉到 HTTPS

 

網站根目錄新建 .htaccess

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

301跳轉

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
</IfModule>

站點綁定多個域名,只允許www.gworg.com 跳轉

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

###把網址更改為自己的###

高級用法 (可選)

RewriteEngine on
# 強制HTTPS
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{SERVER_PORT} 80
# 某些頁面強制
RewriteCond %{REQUEST_URI} ^something_secure [OR]
RewriteCond %{REQUEST_URI} ^something_else_secure
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# 強制HTTP
RewriteCond %{HTTPS} =on [OR]
RewriteCond %{SERVER_PORT} 443
# 某些頁面強制
RewriteCond %{REQUEST_URI} ^something_public [OR]
RewriteCond %{REQUEST_URI} ^something_else_public
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]



OneinStack一鍵包快速自動配置Let's Encrypt免費SSL證書方法

如果我們不想購買付費SSL證書的話,選擇和使用Let's Encrypt免費SSL證書應該算是目前比較優先的選擇,雖然每隔90天需要重新激活續約一次,但是如果設定好自動續約問題也不是很大,而且兼容支持的瀏覽器算是比較齊全的,老左也看到不少的優秀網站也有在使用。

老左在前面一篇"LNMP V1.4一鍵快速部署Let's Encrypt免費SSL證書"文章中可以看到今年兒童節將會出來的正式版LNMP將會可以一鍵部署Let's Encrypt證書。同時,最近一年中用戶較多的OneinStack一鍵包也是支持一鍵快速部署Let's Encrypt免費SSL證書的,老左將在這篇文章中記錄我們如何用OneinStack一鍵包安裝部署Let's Encrypt。

第一、OneinStack安裝Let's Encrypt證書准備工作

1、我們當前服務器需要部署好OneinStack一鍵包,如果沒有部署則需要參考這篇文章自動部署。

2、我們需要在配置好的環境中,再單獨安裝Let's Encrypt客戶端,要不我們無法自動獲取Let's Encrypt安裝選項。

./addons.sh

OneinStack安裝Let's Encrypt證書准備工作

我們只有安裝好客戶端后才可以添加站點的時候出現Let's Encrypt選項。

3、我們需要先將域名解析到當前服務器,這樣安裝證書配置時候會檢測域名所有權。

第二、OneinStack添加站點自動配置Let's Encrypt

1、基本的站點部署參數設置

OneinStack添加站點自動配置Let's Encrypt

./vhost.sh

我們用正常添加站點的命令進行站點部署配置參數。

2、配置SSL證書

配置SSL證書

因為我們開始的時候安裝了客戶端,所以在這里可以看到有Let's Encrypt選項,我們只要 解析過來域名,這里一般沒有問題,郵箱我們可以隨便填寫一個自己的。后面還有幾個網站參數,比如日志、偽靜態規則等,我們正常配置即可。

3、安裝成功

安裝成功

看到這樣的界面,理論上是可以成功安裝SSL。我們可以簡單的丟一個頁面到網站目錄下,然后看看HTTPS是不是強制跳轉過去。這個時候我們只要配置網站或者搬遷網站修改指向即可。

第三、關於Let's Encrypt自動續約問題

關於Let's Encrypt自動續約問題

老左看到自動部署SSL之后,也自動添加續約腳本。前提是我們的服務器要安裝好crontab,如果沒有安裝則需要自己先安裝,要不部署不到。

第四、OneinStack一鍵包配置Let's Encrypt小結

1、我們在OneinStack環境中配置Let's Encrypt證書還是比較簡單的,前提是我們要安裝Let's Encrypt客戶端后再添加站點才有選項。

2、缺點就是我們站點要開始添加的時候才可以自動部署選擇Let's Encrypt安裝,如果是已有站點,則不可以自動單獨配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM