Quantcast
Channel: 小惡魔 – 電腦技術 – 工作筆記 – AppleBOY
Viewing all articles
Browse latest Browse all 325

Nginx + phpMyAdmin 搭配 SSL 設定

$
0
0
mysql_logo

phpMyAdmin 是一套用來管理 MySQL 的 Web 介面,如果要讓 phpMyAdmin 強制走 https 的話,可以透過兩種方式,一種是直接設定 phpMyAdmin,另外一種方式是透過 Apache rewriteNginx 設定,底下來分別說明。

1. phpMyAdmin 設定

直接設定 config.inc.php,加入底下設定

$cfg['ForceSSL'] = true;

2. Nginx 或 Apache 設定

打開 Apache mod_rewrite 功能,將設定寫入 .htaccess

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

或是使用 Nginx 設定,將 80 port 轉到 https,設定 443 port 的 SSL 憑證。

server {
  listen 80;
  server_name xxx.xxx.xxx.xxx;
  rewrite ^ https://$server_name$request_uri? permanent;
}

server {
  # listen 80 default_server deferred; # for Linux
  # listen 80 default_server accept_filter=httpready; # for FreeBSD
  #listen 80;

  listen 443 ssl spdy;
  ssl on;
  ssl_certificate /etc/nginx/conf/api.ovoq.tv/server.crt;
  ssl_certificate_key /etc/nginx/conf/api.ovoq.tv/ssl.key;
  ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers         HIGH:!aNULL:!MD5;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 5m;

  # The host name to respond to
  server_name xxx.xxx.xxx.xxx;
}

上面 Nginx 設定完成後,會發現登入 phpMyAdmin 後,網址被轉成

http://xxx.xxx.xxx.xx:443

馬上看到網頁噴

the plain http request was sent to https port

看到這訊息,是 Nginx 產生的,error code 是 497,其實將此 error 導向正確的地方就可以了,在 Nginx 設定檔加入

error_page 497 https://$host$request_uri;

就可以解決此問題了。

Ref:
The plain HTTP request was sent to HTTPS port
Forcing SSL with phpMyAdmin


Viewing all articles
Browse latest Browse all 325