Latest Entries »

重新注册WINDOWS的dll文件

for %j in (%windir%\system32\*.dll) do regsvr32.exe /s %j

for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i

cmd< 需要管理员身份执行

net stop cryptSvc
net stop bits
net stop msiserver

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old

net start wuauserv
net start cryptSvc
net start bits
net start msiserver

Dism /Online /Cleanup-Image /CheckHealth
Dism /Online /Cleanup-Image /ScanHealth
Dism /Online /Cleanup-Image /RestoreHealth

sfc /scannow

LINUX版WPS无法打开PDF解决方法

wpspdf 依赖于 libtiff5.so.5 以支撑其 PDF 功能。而系统更新后,Arch Linux 提供的是 libtiff.so.6 或更新版本,导致其无法正常工作。

安装libtiff5即可解决。
yay -S libtiff5

chrome命令行设置代理

google-chrome-stable –proxy-server=”socks5://127.0.0.1:1080″

linux版wps粗体无法显示的问题

原因:版本 11.1.0.11704-1 与 freetype2 版本 2.13.1 和 2.13.2 兼容性不佳。

方法一:降级freetype2 软件包至 2.13.0 版本

sudo downgrade ‘freetype2=2.13.0’

重启WPS后生效。

方法二:另一种办法是在wps的desktop文件中添加旧的freetype2库文件位置的环境变量,这样可以无需降级系统的freetype2

浏览器下载
https://archive.org/download/archlinux_pkg_freetype2/freetype2-2.13.0-1-x86_64.pkg.tar.zst

解压缩文件:
tar -xvf freetype2-2.13.0-1-x86_64.pkg.tar.zst -C /test

用如下命令加载动态链接库并拉起WPS
env LD_LIBRARY_PATH=/test/freetype2-2.13.0-1-x86_64/usr/lib wps

for i in *.mp4; do mv -f $i `echo $i | sed 's/\[[^]]\+\]//g'`; done
或者
for i in *.mp4; do mv -f $i `echo $i | sed 's/\[[^]]*\]//g'`; done

PS:
开头是\[,结尾是\]。需要转义,表示匹配 [ 和 ] 本身。
^出现在[]中的第一个字符时,表示取反。既表示不接受该方括号表达式中的字符集合。
+匹配前面的子表达式一次或多次。要匹配 + 字符,使用 \+。
*匹配 0 次或多次。

程序快捷方式或者命令行运行时添加如下任一参数即可:

–disable-gpu-sandbox
禁用GPU进程沙箱

–no-sandbox
禁用electron的沙箱

–in-process-gpu
将GPU进程作为线程运行

编译安装高版本的OpenSSL

1、安装编译环境,下载lts版本OpenSSL
#yum group install ‘Development Tools’
yum install gcc perl-core perl-IPC-Cmd zlib-devel
wget https://www.openssl.org/source/openssl-3.0.10.tar.gz

2、解压并进入目录
tar -xvzf openssl-*.tar.gz
cd openssl-*

3、配置、编译、安装
./config –prefix=/usr/local/ssl –openssldir=/usr/local/ssl shared zlib
make && make install

4、配置OpenSSL动态链接库(若跳过这一步,就需要export一个全局变量LD_LIBRARY_PATH)
echo “/usr/local/ssl/lib64” >> /etc/ld.so.conf
或者
echo /usr/local/ssl/lib64 > /etc/ld.so.conf.d/openssl-3.0.10.conf
# 让新添加的library动态链接库路径生效
ldconfig -v

5、使用高版本替换系统默认的OpenSSL版本
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/bin/c_rehash /usr/bin/c_rehash.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/bin/c_rehash /usr/bin/c_rehash
或者
mv /usr/bin/openssl /usr/bin/openssl.bak && mv /usr/bin/c_rehash /usr/bin/c_rehash.bak
alternatives –install /usr/bin/openssl openssl /usr/local/ssl/bin/openssl 1
alternatives –install /usr/bin/c_rehash c_rehash /usr/local/ssl/bin/c_rehash 1

PS:升级高版本openssl若与使用中的LINUX发行版二进制文件不兼容,会把操作系统搞崩。建议保留操作系统原来的版本,再装一套新版本使用。
编译参数说明:
-–prefix and -–openssldir:这2个选项必须同时使用且设置到相同的目录。默认安装路径是usr/local/ssl/目录。
zlib:使用静态的zlib压缩库。
shared:生成动态连接库。

1、查看OpenSSL版本
openssl version

2、查找OpenSSL原版路径
whereis openssl

3、安装EPEL里面的1.1版本
yum install -y openssl11 openssl11-devel

4、查找1.1版的OpenSSL路径
whereis openssl11
# 显示如下:
openssl11: /usr/bin/openssl11 /usr/lib64/openssl11 /usr/include/openssl11 /usr/share/man/man1/openssl11.1.gz

5、使用高版本替换系统默认的OpenSSL路径
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/lib64/openssl /usr/lib64/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
ln -s /usr/bin/openssl11 /usr/bin/openssl
ln -s /usr/lib64/openssl11 /usr/lib64/openssl
ln -s /usr/include/openssl11 /usr/include/openssl

用OPENSSL创建自签名CA证书

一、创建自签 CA 证书,主要分为两个部分: 创建CA 根证书及签发客户端证书。具体每个目录存储什么信息,可以查看 openssl 的配置文件:vi /etc/ssl/openssl.cnf
1、创建 CA 目录
mkdir -p ~/ssl/demoCA/{certs,newcerts,crl,private}
cd ~/ssl/demoCA
Touch index.txt
echo “01” > serial

2、修改 openssl.cnf 文件
建议拷贝 openssl.cnf 文件到自定义文件夹下,这样可以自定义证书和证书申请中的一些属性和扩展,如秘钥扩展等:
sudo cp /etc/ssl/openssl.cnf ~/ssl/openssl.cnf
vi ~/ssl/openssl.cnf

3、生成 CA 根证书及密钥
openssl req -new -x509 -newkey rsa:4096 -keyout cakey.key -out cacert.crt -config openssl.cnf -days 365

BTW:
使用 X.509 证书结构生成证书,X.509 证书的结构是用 ASN1(Abstract Syntax Notation One)进行描述数据结构, X.509 证书编码格式主要有两种: .PEM 和.DER。

.DER 是二进制编码,可包含所有私钥、公钥和证书,是大多数浏览器的缺省格式,常见于 Windows 系统中的证书格式。
.PEM 是明文格式的, 以 “—–BEGIN CERTIFICATE—– 开头,已 —–END CERTIFICATE—– 结尾”, 中间是经过 base64 编码的内容, Apache 和 NGINX 服务器偏向于使用这种编码格式,也是 openssl 默认采用的信息存放方式。PEM 其实就是把 DER 的内容进行了一次 base64 编码。

此处通过命令生成扩展名为.crt 的根证书文件和扩展名为.key 的公钥,生成的证书和公钥可能是.PEM 编码格式,也可能是.DER 编码格式。

4、Linux 查看证书信息,编码,转码:
4.1、查看公钥的内容命令为:
openssl rsa -noout -text -in cakey.key

4.2、查看证书的内容命令为:
openssl x509 -noout -text -in cacert.crt

4.3、证书编码格式转换:
PEM 转为 DER:openssl x509 -in cacert.crt -outform der -out cacert.der
DER 转为 PEM:openssl x509 -in cert.crt -inform der -outform pem -out cacert.pem

二、签发客户端证书
使用 OpenSSL 创建客户端证书时,请注意:
创建私钥时,请将长度指定为 4096。
创建证书时,对于 -extensions 参数,指定 usr_cert。

1、生成 4096 bit 的客户端私钥
openssl genrsa -out client.key 4096

2、用该客户端私钥生成证书签名请求,扩展名.csr
openssl req -new -key client.key -out client.csr -config openssl.cnf

3、使用 CA 根证书签发客户端证书。(当使用 CA 签发客户端证书时,就会加上 usr_cert 的证书扩展项)
openssl ca -in client.csr -out client.crt -cert cacert.crt -keyfile cakey.key -config openssl.cnf

4、把客户端证书和私钥保存为.pem 格式
cat client.crt client.key > client.pem

5、如需导出到windows供VPN客户端使用, 需把客户端证书转换成.pfx 格式
openssl pkcs12 -export -inkey client.key -in client.pem -out client.pfx