dh key too small

shtzeng Post in 網路設備
0

今天第一天上班
一開始就是報到、設定電腦、裝螢幕之類的
然後慢慢交接之類的

下午法克ㄉㄉ拿了一台 ASUS AP 給我玩玩順便測功能
測到 OpenVPN 時
用 Tunnelblick 連線一直出現錯誤
打開 log 後發現錯誤點

TLS_ERROR: BIO read tls_read_plaintext error: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small

最後找到的是這個問題
因為去年 OpenSSL 一堆問題大爆炸
Diffie-Hellman Algorithm 也中槍
所以紛紛要求提高安全性至少到 768 bits
解決之到在上文中有提到

openssl dhparam -out dh2048.pem 2048

後的結果置換掉 ASUS AP 上的 Diffie-Hellman Cipher
就可以正常使用 Tunnelblick 連 ASUS AP 上的 OpenVPN Server 啦
 

強制使用SSL

shtzeng Post in 碎碎念
0

當了兩年多 SA
總是會習慣在架網站時套上 SSL
不過我的 blog 怎麼沒有呢 xddd
所以索性弄一弄

從這篇文章可以知道
前陣子有個免費的 SSL 憑證申請網站叫 Let's Encrypt
不過沒這麼容易可以申請
所以就有人弄出了個 SSL For Free 來省略中間很多步驟
實際測試起來真的蠻簡單的
測試完該網址是不是你的站台後就直接發 KEY 跟 CRT 及 CA bundle 了
因為 Let's Encrypt 還有三個月的失效限制
所以 SSL For Free 有做到提醒功能
至於提醒功能好不好用,三個月再說囉 :p

SSL 啟用紀念文 :P

久久來一篇

shtzeng Post in 碎碎念
1

這裡應該是長滿草了
就來割割草,準備種點東西….

MySQL 的資料型態

shtzeng Post in MySQL
0

因為看到 int(10)、int(5)、tinyint(5)、int(11) unsigned、smallint(5) 這些寫法,感覺頭真的好痛。
不知道這是多久以前版本的寫法了,還是根本沒這寫法,因為我也接觸不深。


所以弄了一個測試的環境,一開始 table 長這樣子,測試 MySQL integer type 的實際資料情形。

mysql> SHOW CREATE TABLE data_type;
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table     | Create Table                                                                                                                                                                                                                                                                                                                                                                           |
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| data_type | CREATE TABLE `data_type` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `int_normal` int(11) DEFAULT NULL,
  `int_unsigned_normal` int(10) unsigned DEFAULT NULL,
  `int_11` int(11) DEFAULT NULL,
  `int_10` int(10) DEFAULT NULL,
  `int_5` int(5) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPRESSED |
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

然後塞各種測試資料及驗證。

mysql> insert into data_type (int_normal, int_unsigned_normal, int_11, int_10, int_5) VALUE (0,0,0,0,0);
Query OK, 1 row affected (0.00 sec)

mysql> insert into data_type (int_normal, int_unsigned_normal, int_11, int_10, int_5) VALUE (1,1,1,1,1);
Query OK, 1 row affected (0.00 sec)

mysql> insert into data_type (int_normal, int_unsigned_normal, int_11, int_10, int_5) VALUE (-1,-1,-1,-1,-1);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+---------+------+--------------------------------------------------------------+
| Level   | Code | Message                                                      |
+---------+------+--------------------------------------------------------------+
| Warning | 1264 | Out of range value for column 'int_unsigned_normal' at row 1 |
+---------+------+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> insert into data_type (int_normal, int_unsigned_normal, int_11, int_10, int_5) VALUE (2147483647,2147483647,2147483647,2147483647,2147483647);
Query OK, 1 row affected (0.00 sec)

mysql> insert into data_type (int_normal, int_unsigned_normal, int_11, int_10, int_5) VALUE (-2147483648,-2147483648,-2147483648,-2147483648,-2147483648);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+---------+------+--------------------------------------------------------------+
| Level   | Code | Message                                                      |
+---------+------+--------------------------------------------------------------+
| Warning | 1264 | Out of range value for column 'int_unsigned_normal' at row 1 |
+---------+------+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> insert into data_type (int_normal, int_unsigned_normal, int_11, int_10, int_5) VALUE (4294967295,4294967295,4294967295,4294967295,4294967295);
Query OK, 1 row affected, 4 warnings (0.00 sec)

mysql> SHOW WARNINGS;
+---------+------+-----------------------------------------------------+
| Level   | Code | Message                                             |
+---------+------+-----------------------------------------------------+
| Warning | 1264 | Out of range value for column 'int_normal' at row 1 |
| Warning | 1264 | Out of range value for column 'int_11' at row 1     |
| Warning | 1264 | Out of range value for column 'int_10' at row 1     |
| Warning | 1264 | Out of range value for column 'int_5' at row 1      |
+---------+------+-----------------------------------------------------+
4 rows in set (0.00 sec)

mysql> SELECT * FROM data_type;
+----+-------------+---------------------+-------------+-------------+-------------+
| id | int_normal  | int_unsigned_normal | int_11      | int_10      | int_5       |
+----+-------------+---------------------+-------------+-------------+-------------+
|  1 |           0 |                   0 |           0 |           0 |           0 |
|  2 |           1 |                   1 |           1 |           1 |           1 |
|  3 |          -1 |                   0 |          -1 |          -1 |          -1 |
|  4 |  2147483647 |          2147483647 |  2147483647 |  2147483647 |  2147483647 |
|  5 | -2147483648 |                   0 | -2147483648 | -2147483648 | -2147483648 |
|  6 |  2147483647 |          4294967295 |  2147483647 |  2147483647 |  2147483647 |
+----+-------------+---------------------+-------------+-------------+-------------+
6 rows in set (0.00 sec)

mysql>

所以,還是附上 MySQL 5.6 Manual 關於括號裡面的參數:
1. 基本上沒有跟著 ZEROFILL 是沒用的
2. 找一個最適合的資料型態用,不然會爆表還是會爆表
3. 我已經對這些人放棄治療了

嘆氣

shtzeng Post in 未分類
0

今天透過學弟聽到
又一個學姐不跟xxx了


能不能好好讓學生畢業啊
我相信大家是有一定程度在努力
雖然真的都很混
但至少可以推一把讓大家達到你的期望

而不是這樣
造成大家浪費光陰

漸行漸遠

shtzeng Post in 碎碎念
0

研究所的時候
同實驗室的同學都還有在聊天
畢業之後
約一約聚會都沒約我

至少兩三次了吧
所以是我有問題囉?
那就隨意囉

隨語

shtzeng Post in 碎碎念
0

好像想寫些什麼
卻有無法留下一些言語

我的原則上很簡單
“人家願意才可以”
不想越線

一昧的起鬨
在喧囂之後
又能留下些什麼?

要再廣再深

shtzeng Post in Research, 碎碎念,Tags: ,
0

最近吃飯聊天,有一些人都以為我原本DB方面很厲害,
但他們都不相信,我是個剛畢業剛當完兵沒有任何玩過DB經驗的新鮮人。

以前大學時後當學聯會資訊部長時代,我曾自學PHP寫一些網站,
順便嘗試接一些小case,現在想想那時候真的是雷死人了。
每天就是掛在PHP官網上查function怎麼用,然後一直google一些基本DB語法,
只會三個用法,SELECT、INSERT、DELETE,會WHERE但其他都不會,
什麼JOIN、GROUP BY蝦米鬼的。

來上班以後,第一件事是學語法,phpmyadmin不要用,看著command line想著,
幹我都不會,還不能在XX面前被發現Orz遇到第二件事是VIEW,那是什麼,能吃嗎?
懵懵懂懂下被帶著ALTER VIEW了,幹我連ALTER是啥都不知道。
沒有習慣訂閱blog,在XX唸了四次以後,開始隨便找了一家feedly來訂blog看。
什麼是Percona XtraDB Cluster?什麼是DB Schema?為什麼會有slow query?
PostgreSQL是什麼?踏馬的就慢慢學阿,很多東西就是不會,
一直翻MySQL文件學來的,認真學會真的會懂了,雖然我還是很不懂XD

目前工作經歷快滿九個月了,我自認為我還是很弱,經歷不夠,所以還得要繼續加油。
久久一篇文章的,找時間要把Percona Live 2014的投影片整理一下,看得好累。

來改一些東西

shtzeng Post in 碎碎念
0

加一些 plugin
改造我的碎碎念 blog XD