2016-11-15

MAC中無法匯入或匯出Cisco IPSec VPN設定檔

之前Yosemite所匯出的Cisco IPSec VPN設定,在後來mac系統升級後就無法匯入,而且重新設定的VPN設定檔也無法匯出,

猜想是因為鑰匙圈存放的密碼無法直接匯出在設定檔的關係,跨機器匯入可能也沒法用,所以索性就不給匯出了(蘋果現在才發現這問題,搞屁)。

解法一:自個兒手動重新設定,去問問網管人員VPN SERVER, GROUP NAME, SHARED SECRET KEY吧....。

解法二:問不到網管人員,或不想問,而且很好運的你還有一台保留VPN設定的MAC,那就自個兒來吧:

(1)先把VPN SERVER(RemoteAddress), GROUP NAME(LocalIdentifier)從VPN設定記下來 (或原VPN設定檔用文字編輯器打開,也能找到)

(2)再來找出SHARED SECRET KEY,從「應用程式 / 工具 / 鑰匙圈」中,搜尋「VPN」,應該可以看到一個種類是「IPSec Shared Secret」的項目,

點二下,將「顯示密碼」打勾,就會顯示SHARED SECRET KEY的明碼,記下來。

(3)好了,有以上三個設定,可以重新設定VPN了。


當然,你也可以用別的VPN Client,以方便在不同的MAC匯入匯出,

例如Cisco自已出的 Cisco AnyConnect Secure Mobility Client

ref:
https://discussions.apple.com/thread/7305662?tstart=0
http://anders.com/guides/native-cisco-vpn-on-mac-os-x/
https://github.com/artemkin/cisco-password-decoder
http://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mobility-client/116080-productqanda-vpnclients-00.html

2016-11-14

QNAP及Synology的OpenVPN設定檔,在行動裝置(iOS & Android)連線的問題

Synology的OpenVPN設定檔,不管在PC系統(MacOS, WINDOWS)或行動裝置(iOS, Android)上,

我測試是都可以直接匯入使用的(除了在原設定檔多加了<ca>...</ca>,把ca.cert的內容貼入設定檔,並把原有的ca ca.cert設定刪掉),

而QNAP的OpenVPN設定檔,在PC系統(MacOS, WINDOWS)可以正常使用,但在行動裝置(iOS, Android)上則要注意修改一個設定,

打開OpenVPN設定,將「Force AES-CBC ciphersuites」給勾選,就可以了,因為QNAP是用AES-CBC-128或AES-CBC-256方式做加密的,

這方式在行動裝置上要額外勾選,預設是不勾選的…也算是有點雷,

而在QNAP官方說明卻叫你確定「Force AES-CBC ciphersuites」是「關閉」,很明顯寫反了。

ref:
https://www.qnap.com/zh-tw/tutorial/con_show.php?op=showone&cid=3

2016-11-06

[Java] 在Netbeans中簽署jar時,加上時間戳記


在Netbeans中,使用金鑰簽署jar時,並不會自動加上時間戳記,當這jar檔使用在Java Web Start,可能會影響是否要更新本地端jar檔的判斷,

一個解法是自已決定簽署參數,在project.properties中,加入如下的值:

jnlp.signing.tsaurl=http://tsa.starfieldtech.com

然後在build.xml的<project>中,加入子節點如下:

<target name="sign-jars" depends="-jnlp-init-keystore,-check-signing-possible" if="jnlp.signed.true+signjars.task.available">
        <echo message="Using custom code for signing and timestamping via build.xml..." />
        <signjar
               alias="${jnlp.signjar.alias}"
               storepass="${jnlp.signjar.storepass}"
               keystore="${jnlp.signjar.keystore}"
               keypass="${jnlp.signjar.keypass}"
               tsaurl="${jnlp.signing.tsaurl}">
            <path>
                <fileset dir="dist" includes="*.jar" />
                <fileset dir="dist/lib" includes="*.jar" />
            </path>
        </signjar>
    </target>