2016年5月23日 星期一

Wildfly 10 - 設置 SSL/TLS

Wildfly 10設置 SSL/TLS 與 管理者介面

詳細說明請考參最這裡 (點我 Link), 這裡就不多做說明了。
  1. 憑證(certificate)準備
    • $ keytool -genkeypair -alias myServer -storetype jks -keyalg RSA -keysize 2048 -keypass myPassword -keystore wfly.jks -storepass myPassword -dname "CN=myServer,OU=test,L=Chicago,ST=IL,C=US" -validity 730 -v
    • $ cp wfly.jks $JBOSS_HOME/standalone/configuration/
  2. Create File
    • $JBOSS_HOME/standalone/configuration/https-users.properties
  3. RUN Wildfly Server
  4. ${JBOSS_DIR}/bin/jboss-cli.sh
  5. $ connect
  6. === 建立 Realm for SSL/TLS ===
    • /core-service=management/security-realm=httpsRealm/:add
    • /core-service=management/security-realm=httpsRealm/authentication=properties/:add(path=https-users.properties, relative-to=jboss.server.config.dir)
    • /core-service=management/security-realm=httpsRealm/server-identity=ssl:add(keystore-path=wfly.jks,keystore-relative-to=jboss.server.config.dir,keystore-password=myPassword, alias=myServer)
    • reload
    • $JBOSS_HOME/bin/add-user.sh -up $JBOSS_HOME/standalone/configuration/https-users.properties -r httpsRealm
  7. === Enable SSL ===
    • /subsystem=undertow/server=default-server/https-listener=default-https:add(socket-binding=https,security-realm=httpsRealm)
  8. === Enabling SSL for 管理介面 ===
    • /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding,value=management-https)
    • /core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=httpsRealm)
    • reload
  9. https://localhost:9993


2016年3月15日 星期二

Keytool是一個Java資料證書的管理工具,Keytool將金鑰(key)和證書(certificates)存在一個稱為keystore的檔中 在keystore裡,包含兩種資料:
  • 金鑰實體(Key entity):金鑰(secret key)又或者是私密金鑰和配對公開金鑰(採用非對稱加密)
  • 可信任的證書實體(trusted certificate entries):只包含公開金鑰
ailas(別名)每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫  

JDK中keytool常用指令:
  • -genkey:在用戶主目錄中創建一個預設檔".keystore",還會產生一個mykey的別名,mykey中包含用戶的公開金鑰、私密金鑰和證書(在沒有指定生成位置的情況下,keystore會存在使用者系統預設目錄,如:對於windows系統,會生成在系統的C:\Documents and Settings\UserName\檔案名為“.keystore”)
  • -alias:產生別名
  • -keystore:指定金鑰庫的名稱(產生的各類資訊將不在.keystore文件中)
  • -keyalg:指定金鑰的演算法 (如 RSA  DSA(如果不指定默認採用DSA))
  • -validity:指定創建的證書有效期多少天
  • -keysize:指定金鑰長度
  • -storepass:指定金鑰庫的密碼(獲取keystore資訊所需的密碼)
  • -keypass:指定別名條目的密碼(私密金鑰的密碼)
  • -dname:指定證書擁有者資訊 例如:  "CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名稱,ST=州或省份名稱,C=單位的兩字母國家代碼"
  • -list:顯示金鑰庫中的證書資訊      keytool -list -v -keystore 指定keystore -storepass 密碼
  • -v :顯示金鑰庫中的證書詳細資訊
  • -export:將別名指定的證書匯出到檔  keytool -export -alias 需要匯出的別名
  • -keystore:指定keystore -file 指定匯出的證書位置及證書名稱 -storepass 密碼
  • -file:參數指定匯出到檔的檔案名
  • -delete:刪除金鑰庫中某條目 keytool -delete -alias 指定需刪除的別名; -keystore 指定keystore;-storepass 指定密碼
  • -printcert:查看匯出的證書資訊          keytool -printcert -file yushan.crt
  • -keypasswd:修改金鑰庫中指定條目指令:keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new  新密碼  -storepass keystore密碼  -keystore sage
  • -storepasswd:修改keystore指令:keytool -storepasswd -keystore e:\polin.keystore(需修改口令的keystore) -storepass 123456(原始密碼) -new polinwei(新密碼)
  • -import:將已簽名數位憑證導入金鑰庫  keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書

2014年11月21日 星期五

Windows 7 待命記憶體,很肥...

最近碰到一個Windows 7的鳥問題,

windows 7 待命記憶體 佔了超過2G的 RAM的問題,

但是卻沒法關掉這個鬼待命...


後來上網找了很多方法,

僅能減少,無法關閉....

以下是減少待命吃的記憶體大小方法


  1. 到 電源管理,關閉 系統休眠、睡眠。
  2. 若是使用內建顯示卡,請至 BIOS裡,設定 顯示卡記憶體大小,
    不要使用 MAX or AUTO 這類的設定。
  3. 降低 螢幕解析度

以上。

OPENCART 2.0 Bug...

最近因為工作需要,

開始在使用 Opencart 2.0,

用了之後發現官方放出來的有些小BUG,

以下就記錄一些我碰到的問題 與 解法,


  1. 後台管理 Mail 無法寄送
    • 原因:少寫code
    • 修改目標 {projectPaht}/dmin/view/template/marketing/contact.tpl
      line 195 : function send(url) { 下面新增以下內容
    • var sHTML = $("#input-message").code();
      $("#input-message").val(sHTML);
  2. 模組:特價商品、最新商品,新增 佈置後在頁面上卻看不到
    • 新增後,不知在何種原因下,操作者可以預先佈置到頁面上,進而導致它是沒有記錄到模組ID,
    • 所以只需要將 佈置裡的模組先清除掉,再選一次就OK了。
  3. 模組:熱賣商品無法儲存
    • 原因:寫錯code id
    • 修改目標 {projectPaht}/admin/controller/module/bestseller.php
    • line 109: (修改成與我紅字部份一樣即可)
    • if (isset($this->request->post['bestseller_module'])) {
    • foreach ($this->request->post['bestseller_module'] as $key => $value) {
    • if (!$value['width'] || !$value['height']) {
    • $this->error['image'][$key] = $this->language->get('error_image');
    • }
    • }
    • }
  4. SMTP 設定
    • 特別之處在於 SMTP 用戶,請只輸入 用戶ID,不需要完整的Mail



以上, 暫時只有這些發現。

    

2014年7月17日 星期四

MySQL Partition

MySQL Partition


  • 使用 Partition 的優點

    1. 可以有效減少單一檔案存放過多資料而造的檔案肥大問題。
    2. 一些查詢可以得到極大的最佳化
      • 滿足一個給定WHERE 語句的數據可以只保存在一個或多個分區內,這樣在搜尋時就不用搜尋其他剩餘的分區。
    3. 涉及到例如SUM() 和 COUNT()這樣聚合函數的查詢,可以很容易地進行並行處理。
      • 通過「並行」, 這意味著該查詢可以在每個分區上同時進行,最終結果只需通過總計所有分區得到的結果。
    4.  通過跨多個磁盤來分散數據查詢,來獲得更大的查詢吞吐量。
  • 分區類型

    • RANGE 分區:基於屬於一個給定連續區間的列值,把多行分配給分區。
    • KEY 分區:類似於按HASH分區,區別在於KEY分區只支援計算一列或多列,
      且MySQL 伺服器提供其自身的哈希函數。必須有一列或多列包含整數值。
    • HASH分區:基於用戶定義的資料表達式的返回值來進行選擇的分區,
      該資料表達式使用將要插入到資料表中的這些行的列值進行計算。
      這個函數可以包含MySQL 中有效的、產生非負整數值的任何資料表達式。
    • LIST 分區:類似於按RANGE分區,
      區別在於LIST分區是基於列值匹配一個離散值集合中的某個值來進行選擇。

  • 建立方式
    • New table
      • CREATE TABLE employees (
            id INT NOT NULL,
            fname VARCHAR(30),
            lname VARCHAR(30))

        PARTITION BY RANGE (store_id) (
            PARTITION p0 VALUES LESS THAN (6),
            PARTITION p1 VALUES LESS THAN (11),
            PARTITION p2 VALUES LESS THAN (16),
            PARTITION p3 VALUES LESS THAN (21));
    • Existing table
      • alter table employess partition by RANGE (year(remittance_date)) (PARTITION r0 VALUES LESS THAN (2012), PARTITION r1 VALUES LESS THAN (2013), PARTITION r2 VALUES LESS THAN (2014), PARTITION r3 VALUES LESS THAN (2015), PARTITION r4 VALUES LESS THAN (2016), PARTITION r5 VALUES LESS THAN (2017), PARTITION r6 VALUES LESS THAN (2018), PARTITION r7 VALUES LESS THAN (2019), PARTITION r8 VALUES LESS THAN (2020), PARTITION r9 VALUES LESS THAN MAXVALUE );
  • 注意事項
    • 若 index 已經做了, 要先將索引清除,partition完成後, 再重做 index。
    • Partition 時, 用來做為分區的key 必須為 pk 或是 pk 的一部份。
    • 若想做為分區的key不為pk時, 最簡單的做法為把pk先暫時清除掉, 再做 paration, partition 完成後, 再重新加回 pk 。
    • 上述之事項,若沒注意,你將會得到很多的 Error Code: 1503...