肖峰博客-117-為Nginx配置 SSL 證書 + 搭建 HTTPS網站 但是我是用的阿里云的,與他的這種不同。也可以參考他這種配置
- 我此處是用
apache
服務器的配置舉例,nginx
的更簡單,在本文末尾有介紹 - 阿里云證書的位置:
產品
->安全(云盾)
->CA證書服務
點擊鏈接
image.png
- 這些證書,我們通過官網申請,阿里云申請,七牛云申請都可以
ov型適合多域名的,ev型可以標注什么什么項目,什么網站
證書控制臺,其實就是云盾
控制臺
控制臺
->云盾(安全)
->證書服務
鏈接
在服務器上操作
我們執行
apachectl configtest
的時候,如果報錯是error
級別,必須解決,其他錯誤提示不解決也可以-
我們把剛才的那個報錯,使用管道符查看下有沒有在
mode-avaliable
里面,我們查看有,然后做一個軟鏈接到mode-enable
里面就可以了
解決上面圖片上的問題 -
從阿里云把證書下載到本地之后,我們可以直接把整個文件上傳到服務器上
把證書上傳到服務器
在服務器上我們進入
ssl
目錄后,會看到我們配置的站點,再進入站點后,在看里面的證書。因為證書其實是配置到相應的站點的;如果證書是通配符配置的,證書就不會配置到某個站點下了。但是我的證書是直接傳到了ssl
文件里面,也可以使用
vi /etc/apache/mode-enable/ssl.conf
,里面的SSLProtocol
參數默認的是all
,但是這樣設置會不安全,我們需要去掉一些不安全的協議和加密套件
vi /etc/apache2/sites-available/default-ssl.conf
,第一,我們需要添加主機名(這個主機名要和阿里云申請證書的域名匹配)。第二,我們需要修改證書的地址;第三,配置證書鏈。注意,default-ssl.conf
默認是沒有軟連接到mode-enable
里面的。我們設置好之后,需要做個軟鏈接。注意,這個文件里面的站點目錄還要和site-avaliablei里面域名對應的站點目錄想對應
以上是apache
的配置,nginx
的配置是vi nginx.conf
,修改以下配置即可。官網鏈接
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/214022665520943.pem;
ssl_certificate_key cert/214022665520943.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
-
但其實我們的配置位置根本不是官網給的那樣,我參考了文檔,下面是我自己的配置
打開站點配置,`vi /etc/nginx/sites-available/default`,查看自己的配置
-
前提是我先把ssl的兩個配置文件放在了
/etc/ssl/cert
里面,我們打開vi /etc/nginx/snippets/snakeoil.conf
文件看看
image.png - 注意,此處的
.pem
,.key
要與我們下載的一致。此處是需要修改的
image.png
- 注意,此處的
設置http訪問直接跳轉到https
只需在80對應的
server
里面添加重寫規則即可。rewrite ^(.*) https://$host$1 permanent;
參考
server {
listen 80 default_server;
server_name www.vipjianzhi.cn;
rewrite ^(.*) https://$host$1 permanent;
include snippets/snakeoil.conf;
root /var/www/jianzhi/public;
index index.html index.php index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
server {
listen 443 ssl default_server;
server_name www.vipjianzhi.cn;
include snippets/snakeoil.conf;
root /var/www/jianzhi/public;
index index.html index.php index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}