[Java] Java / Spring Boot Web 開發環境與語言架構指南

安裝 | Quick Start | Package套件管理 | Logging | 開發工具 | Spring Boot Web | 部署 | Template Engine | Concurrency | Appendix Intro Java programming language JVM JVM (Java Virtual Machine – Java虛擬機),能夠執行Java位元組碼且以堆疊結構機器實做的虛擬機器。它有自己的硬體架構,如處理器、堆疊、暫存器等,還具有相應的指令系統。 JVM 封鎖了與具體作業系統平台相關的資訊,使得Java程式只需生成在 JVM 上執行的目的碼(位元組碼),就可以在多種平台上執行。通過對中央處理器(CPU)所執行的軟體實作,實現能執行編譯過的Java程式碼 (Applet與應用程式)。 (References: […]

[Linux][Swap] 虛擬記憶體分頁Swap指南

Intro Wiki – 分頁Swap 常見的應用情境如開發環境要做套件安裝如PHP Composer,則可以利用暫時設定檔案Swap的方式解決。 基本用法 查看Swap狀態: swapon -s 卸載Swap: # Partition swapoff /dev/hdb2 # File swapoff /swapfile 透過Partition分割 透過檔案增加 主要透過swapon與swapoff指令來操作設定分頁,利用實體所在硬碟分割區中的檔案提供Swap。 先建立一個想要配給Swap容量的檔案於硬碟分割區,可以透過fallocate指令: fallocate -l 2G /swapfile 格式化此檔案為Swap file: chmod 600 /swapfile mkswap /swapfile swapon /swapfile 確認查看或設定自動掛載 完成後可以使用swapon -s指令確認查看,另外如要自動掛載則可以於/etc/fstab加入設定: /swapfile […]

[WordPress] 基本架構與環境建置指南

Intro 目前PHP Blog套件首選 WordPress繁體中文下載: https://tw.wordpress.org/download/ 官方安裝實用指南: https://wordpress.org/support/article/how-to-install-wordpress/ PHP 相容 PHP 5.6以上 官方建議: https://wordpress.org/about/requirements/ 資料夾權限配置 官方文件: https://wordpress.org/support/article/changing-file-permissions/ 社群建議需要改為可寫入的資料夾: /wp-content /wp-includes 其中wp-includes是為了讓外掛(Plugin)自動更新而不用透過FTP設定,可能需要搭配以下設定。 /wp-config.php 增加下列常數並設定: define(‘FS_METHOD’, ‘direct’); StackOverFlow – Can I install/update WordPress plugins without providing FTP access?

[SFTP] Linux SFTP Server Guide – 建置SFTP服務

Intro Server使用工具:OpenSSH 設定SFTP服務主要會限制User僅限使用SFTP以及路徑限制。 安裝與設定 設定/etc/ssh/sshd_config: # 開啟internal-sftp Subsystem,將會限制僅使用SFTP而非SSH (反註解原本設定) Subsystem sftp internal-sftp 在設定Match條件,可以使用group為條件: Match group sftp_only ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 設定完成並重啟服務後,新增user至指定group(範例為sftp_only),並將ChrootDirectory(範例為/home/%u)目錄所有者設定為root,即能使user登入SFTP 應用上,可另外加設定Match條件,ChrootDirectory也可以設定固定為如/srv,使用者即不需要家目錄 進階 使用者與群組指令 # 新增群組 groupadd sftp_only # 新增使用者,如為固定ChrootDirectory則可不設家目錄-m useradd -s /bin/false -G sftp_only username […]

[HTTPS] TLS/SSL指南 – (Ciphers/CURL Test)

Intro TLS – 傳輸層安全性協定 (Transport Layer Security) Cipher suite SSL Lab – Checking server online 實作 查看 Cipher suite list $ openssl ciphers -v TLS_RSA_WITH_AES_128_GCM_SHA256 對應指令為 AES128-GCM-SHA256 Curl 指定 Cipher $ curl -v –ciphers ECDHE-RSA-AES128-SHA256 “https://target.host” 需確認CURL版本支援–ciphers,經測試version 7.47.0不支援 指定最高TLS版本 $ […]

[Linux] SSH Manual – SSH 使用指南

HostKeyAlgorithms | KexAlgorithms | FingerprintHash Intro RFC4252 – The Secure Shell (SSH) Authentication Protocol SSH – OpenBSD manual page server ssh_config — OpenSSH SSH client configuration files ssh $ ssh user@host.com ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D […]

[HTTPS] Two-way SSL – SSL雙向驗證 on Nginx

Intro Two-way SSL 即 Server 端也要求 Client 端提供 certificate 做驗證,handshake 流程上是 Client 端先驗證 Server 端後才換 Server 端驗證 Client 端。 圖片來源:web-service-principles – HTTP Client端憑證 Client 端需設定終端憑證及其對應的 Private Key,即可在 request 交握時提供終端憑證與簽名; Server 端需設定 Client 憑證鏈對應的 CA 憑證,以用於驗證 Client 提供的終端憑證。 [Server] TLS/SSL憑證(Certificate)常用指令 – […]