2021年9月29日 星期三

Xoops網站經 SSL 檢測後,需要做的補強


1.請先到SSL伺服器測試網站 SSL Server Test https://www.ssllabs.com/ssltest/analyze.html 進行測試

2.那我們以https://outdooredu.skjh.chc.edu.tw 為例,進行測試。得到的結果如下圖:

3.我們要停用 TLSv1 與TLSv1.1。要修改/etc/apache2/mods-available/ssl.conf 
原本預設的設定為 SSLProtocol all -SSLv3
要改為 SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
所以指令為
$sudo pico /etc/apache2/mods-available/ssl.conf
檔案名稱:
檔案內容:
            SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

4.重啟apache2
$sudo /etc/init.d/apache2 restart

5.再度測試,我們得到這個結果,如下圖。我們需要處理Apache Forward Secrecy


資料來源:


2021年9月28日 星期二

Xoops 網站從http改為https的步驟


      第一次成功將Xoops 網站從http改為https。心中非常開心,現在將歷程寫下。
01.先到 https://www.sslforfree.com/ 輸入網址
02.第一次來,就選擇Register
03.完成Register,就按下New Certificate
04.輸入網址後,就按下一步(Next Step)
05.選擇90-Day Certificate,就按下一步(Next Step)
06.按下一步(Next Step)
07.按下一步(Next Step)
08.選擇HTTP 檔案 上傳( HTTP File Upload)
(1)下載認證檔案(Auth File)
(2)上傳到http://網址/.well-known/pki-validation/
(3)確認檔案在http://網址/.well-known/pki-validation/XXXXXX.txt
(4)按下一步(Next Step)
09.驗證網域(Verify Domain)
10.通過驗證後,就可以下載憑證。解壓縮後,將得到
     certificate.crt
     ca_bundle.crt
     private.key

11.回到主機,先安裝OpenSSL,並啟動 Apache2 的 SSL 模組
$sudo apt-get install openssl
$sudo a2enmod ssl

12. 將 certificate.crt、ca_bundle.crt、private.key 這三個檔案上傳到/etc/ssl
     certificate.crt     --> /etc/ssl
     ca_bundle.crt     --> /etc/ssl
     private.key         --> /etc/ssl/private

13.編輯 default-ssl 設定檔案
$sudo pico /etc/apache2/sites-available/default-ssl.conf

14.在 /etc/apache2/sites-available/default-ssl.conf 設定下面參數
檔案名稱:default-ssl.conf
檔案內容:
# 設定SSL憑證位置
SSLCertificateFile /etc/ssl/certificate.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
SSLCertificateChainFile /etc/ssl/ca_bundle.crt

15.設定 Apache2 從 http 自動轉址導向 https,編輯/etc/apache2/sites-available/000-default.conf 
$sudo pico /etc/apache2/sites-available/000-default.conf 

在 /etc/apache2/sites-available/000-default.conf 設定下面參數
檔案名稱:000-default.conf
Redirect permanent / https://outdooredu.skjh.chc.edu.tw


16.儲存後,加入Aapche2的SSL網站設定檔, 並重新啟動 Apache2
$cd /etc/apache2/sites-enabled
$sudo ln -s ../sites-available/default-ssl.conf
$sudo service apache2 restart

17.接著,就可以用 https://網址 來瀏覽您的網站。


2021年8月6日 星期五

忘記Windows10 登入密碼,除了重灌以外,還可以怎麼做系列貳




方法貳、使用Windows 10 安裝光碟

程序步驟:
01.將Windows 10 安裝光碟放入光碟機中,並設定光碟機開機-> 修復您的電腦
02.疑難排解->命令提示字元-> X:\Sources
03.輸入DISKPART 來查看磁碟機狀態
04.輸入LIST VOL 來顯示磁碟區清單,確認是否有系統C槽
05.輸入EXIT 來離開DISKPART
06.輸入 C: 來進入C槽
07.輸入cd windows\system32\ 來進入c:\windows\system32\ 目錄
08.輸入 copy sethc.exe c:\ 來複製sethc.exe到c:\
09.輸入 copy cmd.exe sethc.exe 來複製cmd.exe 並取代原先sethc.exe
10.輸入 shutdown -r -t 1 來重新開機
11.按下 shift鍵五次以上,就會出現命令列視窗
12.輸入 net user <帳號> <新密碼> 
     例如目前帳號MARK,則輸入 net user MARK 123
     則帳號MARK 密碼更改為 123
13.若是不清楚目前帳號,則可以用 net user 就可查詢目前使用的帳戶名稱


程序詳細步驟:
01.將Windows 10 安裝光碟放入光碟機中,並設定光碟機開機-> 修復您的電腦

02.疑難排解->命令提示字元-> X:\Sources

03.輸入DISKPART 來查看磁碟機狀態

04.輸入LIST VOL 來顯示磁碟區清單,確認是否有系統C槽

05.輸入EXIT 來離開DISKPART

06.輸入 C: 來進入C槽

07.輸入cd windows\system32\ 來進入c:\windows\system32\ 目錄

08.輸入 copy sethc.exe c:\ 來複製sethc.exe到c:\

09.輸入 copy cmd.exe sethc.exe 來複製cmd.exe 並取代原先sethc.exe

10.輸入 shutdown -r -t 1 來重新開機

11.按下 shift鍵五次以上,就會出現命令列視窗

12.輸入 net user <帳號> <新密碼> 
     例如目前帳號MARK,則輸入 net user MARK 123
     則帳號MARK 密碼更改為 123

13.若是不清楚目前帳號,則可以用 net user 就可查詢目前使用的帳戶名稱

資料來源:
文章:



2021年8月2日 星期一

忘記Windows10 登入密碼,除了重灌以外,還可以怎麼做系列壹



方法壹、使用Lazesoft軟體進行移除密碼:
一、各步驟整理總表如下:
2.下載後安裝
3.執行 Lazesoft Recovery Suite Home Edition -> 建立 lsboot.iso
4.設定Windows 10虛擬機以lsboot.iso開機
   (1)虛擬光碟機設定lsboot.iso
   (2)開機
   (3)開機後看到 vmware 字樣,要按下 F2(一直按)
   (4)進入BIOS,選擇虛擬光碟機
   (5)選擇Lazesoft Live CD
5.進入 WinPE,選擇 Password Recovery
6.移除Windows 10虛擬機的光碟機設定
7.Windows 10虛擬機開機
8.由於Windows 10虛擬機的使用者m 密碼已經重設,就會直接進入桌面

二、各步驟詳解如下:

2.下載後安裝







3.執行 Lazesoft Recovery Suite Home Edition -> 建立 lsboot.iso




4.設定Windows 10虛擬機以lsboot.iso開機
   (1)虛擬光碟機設定lsboot.iso
  
   (2)開機
   (3)開機後看到 vmware 字樣,要按下 F2(一直按)
   (4)進入BIOS,選擇虛擬光碟機
   (5)選擇Lazesoft Live CD

5.進入 WinPE,選擇 Password Recovery

6.移除Windows 10虛擬機的光碟機設定
7.Windows 10虛擬機開機
8.由於Windows 10虛擬機的使用者m 密碼已經重設,就會直接進入桌面

2021年7月11日 星期日

Xubuntu 20.04.2 x64 用shell 安裝Apache、MySQL、PHP、Geany、Bluefish、Chrome 與 Visual Studio Code

現在用shell 安裝下列步驟1~7的套件。
檔案名稱:Xub2004LAMP.sh
檔案內容:
#!/bin/bash
apt install -y apache2 apache2-utils
apt install mariadb-server mariadb-client
apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
a2enmod php7.4
systemctl restart apache2
apt install phpmyadmin
apt install -y geany
apt install -y bluefish
apt install software-properties-common apt-transport-https wget
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
apt install code
clear
echo "請下指令  sudo mysql_secure_installation ,完成最後MySQL密碼設定"

1.安裝 Apache
$sudo apt install -y apache2 apache2-utils

2.安裝 MySQL
$sudo apt install mariadb-server mariadb-client
$sudo mysql_secure_installation

3.安裝 PHP
$sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
$sudo a2enmod php7.4
$sudo systemctl restart apache2

4.安裝phpMyAdmin
$sudo apt install phpmyadmin

5.安裝Geany
$sudo apt install -y geany

6.安裝Bluefish
$sudo apt install -y bluefish

7.安裝Chrome
$wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$sudo apt install ./google-chrome-stable_current_amd64.deb

8.安裝Visual Studio Code
$sudo apt install software-properties-common apt-transport-https wget
$wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
$sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
$sudo apt install code


9.裝Visual Studio Code 套件 
EditorConfig for VS Code
統一專案中檔案的編輯風格

ESLint
編輯器會自動幫你檢查 coding style,需搭配 .eslintrc 檔

Git History
方便查看 Git 紀錄以及檔案歷史,包括 Line History,並可直接連結到變更的檔案。

Git Lens
版本控紀錄,一目了然誰在什麼時間點修改檔案

Path Intellisense
輸入 / 編輯器會自動查詢該目錄底下建議路徑

Path Autocomplete for Visual Studio Code
路徑自動補完

Preview on Web Server
前端開發時預覽的好幫手

vscode-icons
幫你 VS Code 檔案與資料夾 icon 美化

DotENV
讓 .env 檔也有 syntax 效果

Markdown All in One
一應俱全的 Markdown 工具,包括 highlight、快速鍵、自動補完、預覽

Docker
方便管理及操作 Docker Image、Container 的官方工具

YAML
讓 VSCode 支援 YAML 格式

Guides
在程式開關符號(例如左右大括號)拉一條線,方便識別程式區塊

Auto Close Tag
自動把右括號或結束標籤補上

資料來源:


2021年7月2日 星期五

C++ Pointer 與 Array 的相關範例筆記

觀念:
指標是用來指向記憶體位址的,可用*設指標變數跟取指向位址的值。&就是取變數記憶體位址。

陣列宣告
資料型態 陣列名稱[陣列長度];
int A[10];

程式名稱:
程式碼:

資料來源:
1.C++ Array of Pointers



C++ Class 的範例筆記

程式名稱:ClassRectangle01.cpp
程式內容:

#include <iostream>
using namespace std;

class CRectangle {
int x,y;
  public:
     void set_values (int a,int b) {
        x = a;
y = b;
}
     int area(void){
      return x*y;
}
};

int main() {

  CRectangle rect;
  rect.set_values(3,4);
  cout << " area: " << rect.area();
}

建構子
建構子 constructor, 它透過一個與 class 同名的函數來定義。當且僅當要生成一個 class 的新的物件的 時候或給該 class 的一個物件分配記憶體的時候,這個建構子將自動被調用。。一個建構子永遠沒有返回值,也不用宣告成 void。

程式名稱:ClassRectangle02.cpp
程式內容:
#include <iostream>
using namespace std;

class CRectangle {
int width,height;
public:
CRectangle (int a, int b) {
width = a;
height = b;
}
int area(void) {
return width*height;
};

int main() {
CRectangle rect01 (3,4),rect02 (5,6);
        cout << " rect01 area:" << rect01.area()<< endl;
        cout << " rect02 area:" << rect02.area()<< endl;
}

解構子
解構子 destructor 完成相反的功能。它在 objects 被從記憶體中釋放的時候被自動 調用。釋放可能是因為它存在的範圍已經結束了(例如,如果 object 被定義為一 個函數內的 local (區域) 物件變數,而該函數結束了);或者是因為它是一個動 態分配的物件,而被使用運算子 delete 釋放了。 解構子必頇與 class 同名,加上水波號 tilde (~) 首碼,一樣必頇無返回值

程式名稱:ClassRectangle03.cpp
程式內容:
#include <iostream>

using namespace std;

class CRectangle {
int *width,*height;
public:
CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}
~CRectangle (){
delete width;
delete height;
}; 
int area(void) {
return *width * *height;
};

int main() {
CRectangle rect01 (3,4),rect02 (5,6);
    cout << " rect01 area:" << rect01.area()<< endl;
    cout << " rect02 area:" << rect02.area()<< endl;
}



只要點兩下,就能將input資料夾內所有m4a 轉檔為 mp3

         最近需要將m4a檔案轉檔為mp3,所以寫python程式來處理。希望將很多的m4a放進input資料夾內,只要點兩下滑鼠就能將這些m4a 通通轉檔為 mp3。          Recently, I needed to convert M4A files in...