自然人憑證展期失敗(錯誤碼 6714)

狀況

  1. 有效憑證
  2. 於展期有效期間
  3. 資料、PIN 碼正確,但進行展期作業時出現「6714 非有效憑證」之錯誤

解決方式

進行「憑證IC卡檢測重寫」作業,完成後應該就直接更新為展期完成的憑證,可使用「檢視憑證IC卡資訊」進行確認。

分類: 雜記 | 在〈自然人憑證展期失敗(錯誤碼 6714)〉中留言功能已關閉

在 Linux (Ubuntu) 導入 Let’s Encrypt (snap 版)(for Apache)

文章更新時間:2021-11-25

環境:

OS: Ubuntu 18.04 LTS
Web server: Apache: 2.4

初始化:

安裝流程參閱官方內容即可:https://certbot.eff.org/instructions?ws=apache&os=ubuntu-18

單一主機名稱 (Single host) 步驟:

  1. 開始自動化設定 (for apache) ./certbot --apache
  2. 選擇要簽發憑證的主機名稱
  3. 選擇未來的連線方式
    1. HTTP, HTTPS 並存
    2. 全部導向 HTTPS (會自動在該主機設定檔加上 rewrite rule)
  4. 測試是否正常簽發 https://www.ssllabs.com/ssltest/analyze.html?d=[主機名稱]

Wildcard Certificate 步驟:

  1. 採用手動設定,挑戰模式採用 DNS TXT 紀錄: ./certbot certonly --manual --preferred-challenges dns --agree-tos --email yourname@example.com -d "*.yourdomain.com,yourdomain.com"
  2. 接下來會出現要加入 DNS TXT 的內容:
  3. 加入後用以下指令確認是否已經生效:
    [Linux] dig _acme-challenge.yourdomain.com txt
    [Windows] nslookup -q=txt _acme-challenge.yourdomain.com
  4. 生效後按下 Enter
  5. 由於本範例登錄了 *.yourdomain.com 及 yourdomain.com 兩個域名,所以 2~3 步驟會跑兩次(請注意那個挑戰用的值 xxxxxxxx 每次都不同,此外,不要刪除前一個 TXT Record 而是建立同名的第二個 TXT Record)
  6. 等第二個生效等了一段時間,因為要看主機的 TTL
  7. 以後還是得使用以上相同流程來更新憑證
  8. 由於此方式僅申請憑證但沒有自動設定到 Web Server,所以後續要自己手動設定

維護:

  • 列出所有憑證: ./certbot certificates
  • 更新所有憑證: ./certbot renew
  • 更新單一憑證: ./certbot renew --cert-name [憑證名稱]
  • 刪除憑證: ./certbot delete --cert-name [憑證名稱]

Reference:

分類: 雜記 | 在〈在 Linux (Ubuntu) 導入 Let’s Encrypt (snap 版)(for Apache)〉中留言功能已關閉

Strange javascript variable scope issue

昨天在測試 Web App 於 iPad 上運作狀況時發生一個意外的狀況,相同的程式在 Windows 的 Google Chrome, Mozilla Firefox 都正常運作,但到了 iPad 上 Apple Safari, Google Chrome, Mozilla Firefox 卻全數掛掉,經過 debug 後發現一個奇特的狀況:變數的 scope 在不同環境(Browsers on Windows vs Browsers on iOS) 居然有不同範圍!?

<!-- 簡化示意 -->
<script defer>const foo={ 'bar': true };</script>
<script src="app.js" type="module"></script>

以上同樣的程式碼在 Windows 下的兩個瀏覽器,app.js 都能存取到變數 foo,但到了 iOS 上面,三個瀏覽器都拋出 undefined,因此直覺就判定是 variable scope 的問題,所以將 foo 宣告由 const foo 改成 window.foo,將其附加到 window 物件後 app.js 就能正常地直接以變數名稱 foo 存取(不需要以 window.foo),若是 module 載入的 js 不能直接存取 foo 的話並沒有什麼問題 (非全域變數),但不同平台結果不同這就有些問題了…

分類: 射茶包, 軟體開發 | 標籤: | 在〈Strange javascript variable scope issue〉中留言功能已關閉

調整 Bootstrap 4 按鈕的顏色 (Change Bootstrap 4 button color)

Bootstrap 4 的按鈕配色個人覺得比較硬,想改回 Bootstrap 3 的按鈕配色於是就用覆蓋樣式的方式依照 Boostrap 4 的樣式設定調整顏色。

( LESS 格式,因為 WordPress bug 把 & 給 escape 了,複製後得把 &amp; 改回 & )

#bundle() {
	.btnStyle {
		color: @color;
		background-color: @background-color;
		border-color: @border-color;
		&:hover {
			color: @color;
			background-color: @background-color-hover;
			border-color: @border-color-hover;
		}
		&.focus, &:focus {
			box-shadow: @box-shadow;
		}
		&.disabled, &:disabled {
			color: @color;
			background-color: @background-color;
			border-color: @border-color;
		}
		&:not(:disabled):not(.disabled).active
		, &:not(:disabled):not(.disabled):active
		, .show > &.dropdown-toggle {
			color: @color;
			background-color: @background-color-hover;
			border-color: @border-color-hover;
		}
		&:not(:disabled):not(.disabled):active:focus
		, &:not(:disabled):not(.disabled).active:focus
		, .show > &.dropdown-toggle:focus {
			box-shadow: @box-shadow;
		}
	}
}

.btn-primary {
	@color: #fff;
	@background-color: #0275d8;
	@border-color: #0275d8;
	@background-color-hover: #025aa5;
	@border-color-hover: #01549b;
	@box-shadow: 0 0 0 .2rem rgba(2, 117, 216, .5);
	#bundle.btnStyle();
}

.btn-secondary {
	@color: #292b2c;
	@background-color: #fff;
	@border-color: #ccc;
	@background-color-hover: #e6e6e6;
	@border-color-hover: #adadad;
	@box-shadow: 0 0 0 .2rem rgba(204, 204, 204, .5);
	#bundle.btnStyle();
}

.btn-info {
	@color: #fff;
	@background-color: #5bc0de;
	@border-color: #5bc0de;
	@background-color-hover: #31b0d5;
	@border-color-hover: #2aabd2;
	@box-shadow: 0 0 0 .2rem rgba(91, 192, 222, .5);
	#bundle.btnStyle();
}

.btn-success {
	@color: #fff;
	@background-color: #5cb85c;
	@border-color: #5cb85c;
	@background-color-hover: #449d44;
	@border-color-hover: #449d44;
	@box-shadow: 0 0 0 .2rem rgba(92, 184, 92, .5);
	#bundle.btnStyle();
}

.btn-warning {
	@color: #fff;
	@background-color: #f0ad4e;
	@border-color: #f0ad4e;
	@background-color-hover: #ec971f;
	@border-color-hover: #eb9316;
	@box-shadow: 0 0 0 .2rem rgba(240, 173, 78, .5);
	#bundle.btnStyle();
}

.btn-danger {
	@color: #fff;
	@background-color: #d9534f;
	@border-color: #d9534f;
	@background-color-hover: #c9302c;
	@border-color-hover: #c12e2a;
	@box-shadow: 0 0 0 .2rem rgba(217, 83, 79, .5);
	#bundle.btnStyle();
}

.btn-light {
	@color: #212529;
	@background-color: #eceeec;
	@border-color: #eceeec;
	@background-color-hover: #d8dcd8;
	@border-color-hover: #d1d6d1;
	@box-shadow: 0 0 0 .2rem rgba(206, 208, 207, 0.5);
	#bundle.btnStyle();
}

.btn-dark {
	@color: #fff;
	@background-color: #343a40;
	@border-color: #343a40;
	@background-color-hover: #23272b;
	@border-color-hover: #1d2124;
	@box-shadow: 0 0 0 .2rem rgba(82, 88, 93, 0.5);
	#bundle.btnStyle();
}
 
分類: Web technology | 在〈調整 Bootstrap 4 按鈕的顏色 (Change Bootstrap 4 button color)〉中留言功能已關閉

用 PowerShell 自動備份 Windows 10 的焦點影像

Title: Windows Spotlight auto backup script by PowerShell

Windows 10 的鎖定畫面如果背景選用 "Winodws 焦點" 的話會每天變換影像,系統下載的這些影像並不會一直保留而是會刪除舊的,因此若是想要將好看的風景保留下來的話必須自己備份,於是我就寫一小段碼來自動化備份這些風景。

把以下程式碼存檔後用工作排程器安排每天執行或登入時執行即可,記得把 $to 的路徑改成自己的備份路徑:

$from = "$env:USERPROFILE\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\"
$to = "C:\Users\Your_Name\Pictures\Windows Spotlight\"

Get-ChildItem -Path $from | `
Foreach-Object {
    If ($_.length -gt 300kb) {
        $newFilename = $to + $_.BaseName + ".jpg"
        If (-not (Test-Path $newFilename)) {
            Write-Host "Copy:" $_.BaseName
            Copy-Item $_.FullName $newFilename
        }
    }
}
分類: 資訊技術相關雜記 | 在〈用 PowerShell 自動備份 Windows 10 的焦點影像〉中留言功能已關閉