1. 程式人生 > >如何部署HTTPS 申請證書 安裝證書

如何部署HTTPS 申請證書 安裝證書

php https 安裝證書

目標:

讓自己的網站,yyii.infohttps://yyii.info訪問,


條件:

1.用的是阿裏雲服務器,

https://promotion.aliyun.com/ntms/act/qwbk.html 330/年。40G

用oneinstack一鍵安裝的。https://oneinstack.com/


2.在阿裏雲申請一個免費的證書。在安全(雲盾)欄目->證書服務。

申請後,大約1天,會提示下載相關文件,上傳到網站下。然後再等待自動審核通過。

之後,就能下載證書。

下載來有4個文件,

214113615990489.key,

214113615990489.pem,

chain.pem

public.pem

(域名放在西部數碼的,也能申請一個免費證書。好象不能用到阿裏雲這邊來。)


阿裏雲裏有相關說明,如何布署證書。(這一段見本文後面)

因我的服務器是按oneinstack安裝的。就不需使用阿裏雲的方法。


3.配置網站

./vhost.sh

配置了一個網站,

Do you want to setup SSL under Nginx? [y/n]: y

其他的按提示來。上面如果不是配置https的網站,就選n.


4.然後,可看到,

在/usr/local/nginx/conf/ssl

生成了,三個文件,

yyii.info.crt

yyii.info.csr

yyii.info.key


5.

但同時,也報了如下:

nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/usr/local/nginx/conf/ssl/yyii.info.crt"

AH00526: Syntax error on line 6 of /usr/local/apache/conf/vhost/yyii.info.conf:

Invalid command ‘SSLEngine‘, perhaps misspelled or defined by a module not included in the server configuration


https仍是不能訪問。


6.


群主yeho告訴我:你這個自簽名證書 自己購買證書替換 重啟nginx即可


7.

我在阿裏雲申請得到一年的免費證書,

下載來有4個文件,

214113615990489.key,

214113615990489.pem,

chain.pem

public.pem


然後,我是把這4個文件,放在,/usr/local/nginx/conf/ssl下

214113615990489.key,重命名為 ,域名.key

214113615990489.pem重命名為, 域名.crt


在此感謝群主指點,不然自己哪裏會知道啊!


8.重啟nginx


9.https://yyii.info就可以訪問了!

有一點註意,如果網站下有index.html,會先讀index.html.


10.

讓我們再看看:

oneinstack生成的/usr/local/nginx/conf/vhost/yyii.info.conf

server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/yyii.info.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/yyii.info.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name yyii.info;
  access_log off;
  index index.html index.htm index.php;
  root /data/wwwroot/yyii.info;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }


  location / {
    try_files $uri @apache;
  }
  location @apache {
    proxy_pass http://127.0.0.1:88;
    include proxy.conf;
  }
  location ~ .*\.(php|php5|cgi|pl)?$ {
    proxy_pass http://127.0.0.1:88;
    include proxy.conf;
  }
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
  location ~ /\.ht {
    deny all;
  }

11.看看 阿裏雲裏寫的如何安裝證書,apache下,

安裝證書

文件說明:
1.證書文件214113615990489.pem,包含兩段內容,請不要刪除任何一段內容。
2.如果是證書系統創建的CSR,還包含:證書私鑰文件214113615990489.key、證書公鑰文件public.pem、證書鏈文件chain.pem
( 1 )Apache的安裝目錄下創建cert目錄,並且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創建的CSR文件,請將對應的私鑰文件放到cert目錄下並且命名為214113615990489.key
( 2 ) 打開apache 安裝目錄下conf 目錄中的httpd.conf 文件,找到以下內容並去掉“#”
#LoadModule ssl_module modules/mod_ssl.so (如果找不到請確認是否編譯過 openssl 插件)
#Include conf/extra/httpd-ssl.conf
( 3 ) 打開 apache安裝目錄下 conf/extra/httpd-ssl.conf文件 (也可能是conf.d/ssl.conf,與操作系統及安裝方式有關), 在配置文件中查找以下配置語句:
# 添加 SSL 協議支持協議,去掉不安全的協議
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
# 修改加密套件如下
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
# 證書公鑰配置
SSLCertificateFile cert/public.pem
# 證書私鑰配置
SSLCertificateKeyFile cert/214113615990489.key
# 證書鏈配置,如果該屬性開頭有 ‘#‘字符,請刪除掉
SSLCertificateChainFile cert/chain.pem
( 4 ) 重啟 Apache
( 5 ) 通過https方式訪問您的站點,測試站點證書的安裝配置,如遇到證書不信任問題,請查看相關文檔。

---------- 招募未來大神 -----------------------

如果您有利他之心,樂於幫助他人,樂於分享
如果您遇到php問題,百度且問了其他群之後仍沒得到解答

歡迎加入,PHP技術問答群,QQ群:292626152

教學相長!幫助他人,自己也會得到提升!

為了珍惜每個人的寶貴時間,請大家不要閑聊。

願我們互相幫助,共同成長!

加入時留言暗號,php,ajax,thinkphp,yii...


如何部署HTTPS 申請證書 安裝證書