写在前面
由于Windows自身对这些软件的兼容性一言难尽,而重新搭载虚拟机的过程又过于麻烦,因此笔者另辟蹊径,使用在Microsoft Store上的WSL来完成Linux环境的配置,同时结合VS Code来避免图形化界面的安装,尽量让Linux环境轻量级,同时也保证了代码高亮等更专业友好的开发环境。
具体安装步骤主要分以下几步:
- 在Microsoft Store下载安装Ubuntu WSL
- 配置VS Code
- 在Ubuntu上配置GmSSL
在Microsoft Store下载安装Ubuntu WSL
搜索控制面板,进入控制面板
,选择程序
,点击启用或关闭Windows功能
,勾选适用于Linux的Windows子系统
,如下:


根据提示重启系统。
重启后在Microsoft Store中搜索Ubuntu
,下载并安装18.04版本,如下:

安装后启动,根据提示设置电脑名称和密码,这将是之后的用户名和密码,请务必记住
。
使用如下命令更改软件源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
将文件/etc/apt/sources.list
中所有源注释掉后,添加下面的信息:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
保存并退出后使用命令进行更新,这很必要,如下:
sudo apt-get update
配置VS Code
下载安装VS Code
下载安装最新的VS Code,官网链接
下载所需插件
安装完成后在官网下载需要的插件,具体插件包括Remote WSL
、Remote SSH
、Remote Development
,官网链接,如下:

搜索后点击打开,右侧有Download Extension
字样,点击进行下载,如下:

安装插件
打开VS Code,点击左侧最下方Extensions
的图标,左侧栏上方出现三个点...
,点击后选择Install from VSIX
,然后选择刚下载好的三个插件进行安装即可,如下:

在Ubuntu上配置GmSSL
下载GmSSL压缩包
使用wget从网页下载GmSSL的压缩包。wget后参数为下载链接,由于该链接可能随着版本更新,因此需要去查看该链接地址,GmSSL官网提供了Linux版本下载路径,可以去官网http://gmssl.org查看。点击Download
后会跳转至GitHub界面,在下方找到Linux版本后,点击右键复制链接,如下图:

使用wget命令下载压缩包,如下:
sudo wget https://github.com/guanzhi/GmSSL/archive/gmbrowser-v0.1.tar.gz
在Ubuntu上解压并安装
在想要安装GmSSL的路径上新建一个文件夹:
sudo mkdir -p /opt/GmSSL
在安装包下载目录下对压缩包进行解压,-C
参数后是解压目录:
sudo tar -zxvf gmbrowser-v0.1.tar.gz -C /opt/GmSSL
用cd
进入解压目录后,由于GmSSL压缩包可能本来为一个文件夹,因此使用ls
查看文件目录,并进入该目录,如下:

在安装目录下依次使用以下命令:(安装过程可能出现一些报错,下面有提供一些思路)
sudo ./config
sudo make
sudo make install
报错解决:
- 提示没有make,根据提示用
sudo apt install make
命令安装即可 - 出现错误
make[1]: *** [crypto/aes/aes-x86_64.o] Error 127
,根据错误追踪上查,发现原因是没有基于C语言的的编译器,使用命令sudo apt install gcc
安装gcc即可 - make结束后会出现
make[1]: Leaving directory '/opt/GmSSL/GmSSL-gmbrowser-v0.1'
,这个错误不用管,直接进行下一步即可
配置GmSSL动态链接库和静态链接库
复制配置文件到目标目录。
先cd
到/usr/lib
下查看目录,如下:

观察有没有x86_64-linux-gnu
文件夹,如果有则目标复制到该目录下,否则复制到/usr/lib
下,具体为:
# 如果有上述文件夹
sudo cp libcrypto.so /usr/lib/x86_64-linux-gnu
sudo cp libssl.so /usr/lib/x86_64-linux-gnu
sudo cp libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu
sudo cp libssl.so.1.1 /usr/lib/x86_64-linux-gnu
# 如果没有上述文件夹
sudo cp libcrypto.so /usr/lib
sudo cp libssl.so /usr/lib
sudo cp libcrypto.so.1.1 /usr/lib
sudo cp libssl.so.1.1 /usr/lib
由于在调用相关头文件完成自编写程序的过程中,需要使用静态链接库,因此还需配置静态链接库,如下:
sudo cp libssl.a /usr/lib
sudo cp libcrypto.a /usr/lib
接着使用如下命令配置环境变量,在.bashrc
文件中添加LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
并使其生效,如下:
cd
vi .bashrc
source .bashrc
使用与测试
测试GmSSL安装情况
使用命令gmssl
后若进入如下界面则表示gmssl成功安装并可使用。

测试VS Code与Ubuntu的连接
在Ubuntu中使用命令code .
后VS Code提示插件正在安装,这是第一次使用时安装初始化的过程,之后不会这么缓慢,但实际这个过程也不慢。完成后VS Code左侧出现Ubuntu中文件组织结构,其中Windows的C盘所在路径为/mnt/c
其他盘类似。
出现上述描述表明成功连接。

如何使用?
每次启动Ubuntu后,在指定文件夹下使用code .
命令即可完成连接的创建。然后在VS Code中使用快捷键Ctrl + `(和~在一起的那个)打开终端,之后便可以在该终端中使用Linux命令进行GmSSL的运用。
如下为VS Code终端:

当自己调用gmssl头文件编写程序时,需要对其进行编译,在源文件目录下使用命令g++ filename.cpp -lssl -lcrypto
即可完成编译。如下:

参考资料
https://www.jianshu.com/p/2bcf5eca5fbc
http://gmssl.org/docs/quickstart.html
https://zhuanlan.zhihu.com/p/100952557
https://www.cnblogs.com/wangzihong0213/p/10856875.html