Rust - 在 Windows 上安裝 OpenSSL

撐住啊別放棄在 Windows 上操作 rust ....

 

這些苦 ...

 

我知道~

我都知道~

「和運怎麼都知道」的圖片搜尋結果

 

 

 

一、前言

兄弟撐著點,別放棄!!!

 

本篇為記錄在 Windows 上安裝基於 Rust 的 OpenSSL

 

筆者主要於 Windows 上運行 actix-web 而發生的問題,

在 package-feature 可以看到一些功能如下:

  • alpn:使用到了 opsnssl,因此如果要使用這個模組,就得要安裝!!

 

 

 

二、安裝

Windows 平台的安裝過程較為繁瑣,本篇主要為 Windows 64bit 的環境教學。

首先到 rust-openssl,可以看到詳細又有點混亂的說明,接下來將依序說明:

 

1. 安裝 Win32OpenSSL

1.1 下載

首先點選 Win32OpenSSL 進入頁面,卷到下方後選擇 Win64 OpenSSL v1.1.0h (64-bit)下載。

請依據個人電腦位元決定下載哪個。

 

安裝過程皆為下一步請安心上路

 

1.2 環境變數

安裝完畢後請新增環境變數,我們要分別新增「PATH」﹑「OPENSSL_DIR」的變數。

為了方便大家了解如何設定環境變數,筆者用盡苦心整合了一張「完全環境變數指南」,如下:

 

首先右鍵「我的電腦」-「內容」。

依序點選「進階系統設定」-選擇「進階」頁籤的「環境變數」,

在視窗中,上半部就是使用者所有的環境變數。

 

PATH

我們先新增 PATH 的環境變數,滾動卷軸找到「Path」後雙擊(或是點下方的編輯),

接著「新增」-瀏覽我們剛剛安裝 OpenSSL 目錄中的 bin 資料夾並確定,就完成啦。

C:\OpenSSL-Win64\bin

 

OPENSSL_DIR

接下來要新增的是具有變數名稱的值,

點選「新增」-輸入「變數名稱」-「OPENSSL_DIR」-接著「瀏覽目錄」,選擇後確定即可。

# 變數名稱
OPENSSL_DIR

# 變數值
C:\OpenSSL-Win64

 

筆者希望能讓沒有這類知識的讀者也能輕鬆上手,所以精心策畫以上圖解<3。

 

 

2. 安裝憑證 Certificates

2.1 下載

點選網站 CA certificates extracted from Mozilla,然後下載 cacert.pem

也可點選網站如下紅框處

然後存到剛剛 OpenSSL 目錄底下的 certs 資料夾,

別問原因,別問我家鄉,官方建議,Just Do It

C:\OpenSSL-Win64\certs

檔案名稱應該預設如下:

cacert.pem

 

2.2 環境變數

SSL_CERT_FILE

接著同前面步驟,設定環境變數「SSL_CERT_FILE」,

# 變數名稱
SSL_CERT_FILE

# 變數值
C:\OpenSSL-Win64\certs\cacert.pem

 

恭喜~以上就完成在 Rust 環境中 OpenSSL 的安裝了!!!

恭喜~以上就完成在 Rust 環境中 OpenSSL 的安裝了!!!

 

 

以下的步驟三可跳過,如果最後測試失敗,請再操作此程序。

3. 安裝 MSYS2 installer

3.1 下載

首先到 MSYS2 installer,依照電腦位元下載:

 

3.1 安裝

接著就參考該網站的教學步驟,其實就是下一步到底

安裝完畢後,如同官方教學指示,

執行軟體更新(她應該會詢問是否安裝,屆時輸入 -y 就好):

pacman -Syu
pacman -Su

更新完畢後安裝 openssl

# 32-bit
pacman -S mingw-w64-i686-openssl

# 64-bit
pacman -S mingw-w64-x86_64-openssl

 

 

 

三、專案測試

筆者在自己 github 上建立了來自官方範例的專案,可以使用此進行測試

 

下載專案

git clone https://github.com/explooosion/rust-actix-web-sample.git

 

進入專案

cd rust-actix-web-sample

 

編譯專案

這邊順利通過其實就可以了。(初次編譯可能約 3 分鐘

cargo build

如果發現電腦有點當機,可以改使用:

cargo build -j 2
  • -j:調用的 cpu 執行續數量

 

執行專案

由於此專案是網站,可以藉此測試網站是否順利運行。

cargo run

 

  • 其實有畫面就行了XD

 

 

 

※、結論

你放棄 Windows 了嗎?

 

 

 

「現在放棄 比賽就結束了」的圖片搜尋結果

 

 

有勘誤之處,不吝指教。ob'_'ov