前不久介绍了一个 面向开发者的垂直搜索引擎 devv.ai,通过 AI 的加持,搜索结果通常比较精确。今天又发现了一款相似的产品 phind,主要使用的语言是英语。同样是经过训练的面向开发者的文档,所以结果更加精确。
phind 由大语言模型驱动,因为专门使用高质量的语料库进行训练,所以在技术文档,计算机方面的检索和质量要相对精确一些。
phind 的使用非常简单,相较于通用性的 ChatGPT,phind 可以给出更加精确的编程问题答案。相对于需要注册 ChatGPT,phind 打开就能用。
phind 的使用非常简单,只有一个输入框,和通用搜索引擎一样使用即可。
大语言模型的出现,让我自己产生了非常大的惰性,以往如果要查询一个非常专业的问题,我通常会自己去更换不同的关键字进行搜索,有些时候往往就是一个关键字的问题就会出现很不一样的结果,通常用比较精确的文字查找效率会高很多。
但是自从有了 [[ChatGPT]],[[Bard]] 一类的产品,我就变得非常懒惰,直接使用日常的语言进行搜索,而这个时候往往 AI 也能够给出一个相对比较具体的方向,然后继续这个方向追问,基本上也能找到我需要的内容。
尤其是最近使用 JetBrains 的 AI Assistant ,以及 GitHub Copilot Chat,在选中部分代码作为上下文的情况下,给出的答案基本上都是需要的,非常精确。
日常遇到编程相关的问题,不妨试试 phind,或者 devv.ai 这样的垂直类搜索引擎,也还可以借助编程工具,辅助解决问题。
Navidrome 是一个现代的音乐服务器,兼容所有的 Subsonic/Airsonic 客户端。
Navidrome 后端使用 Go 语言编写,前端基于 React,界面风格采用 Material UI,串流音乐的接口兼容 [[Subsonic]],所以支持 Subsonic 的客户端都可以使用。
Navidrome 是什么呢,引用官网的原话:
Navidrome is a self-hosted, open source music server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device.
Navidrome 是一个自托管的开源音乐服务器和流媒体。它让您可以自由地从任何浏览器或移动设备收听您的音乐收藏。
特点:
缺点:
我从 2014 开始使用网易云音乐,几乎很长时间没有变过,但是大家也知道网易云音乐前几年的「变化」,我歌单中的内容就一天天变得不可用(变灰),直接导致产品体验直线下降,虽然还可以使用网易提供的 2T 云盘来解决一部分版权问题,但是还是一些不方便。
于是之后买入了 Plex Pass 之后就将我的音乐库迁移到了 [[Plexamp]],在 Plexamp 下也用了很长一段时间,虽然中间也接触了 Funkwhale 等等,但简单的尝试之后还是停留在了 Plexamp 中,但是最近发现 Plexamp 存在了一些致命的问题让我不得不考虑切换,就是我使用 Syncthing 同步我的音乐库,但是 Plex 扫描的时候经常无法发现我新添加的歌曲,虽然我按照官方的文档无数遍修改文件目录,但依然无法添加到 Plex 中,这个问题困扰了我很久,我不清楚是 Plex 支持的文件格式有限,还是哪个地方设置不对,反正就是添加不了,于是我发现了 [[Navidrome]],大致地看了一下官方网站的介绍,支持的文件格式非常齐全,扫描速度非常快,并且还提供了一个 Web UI,即使不安装客户端也可以在线听歌,兼容 Subsonic 客户端,这就使得我可以有非常多的音乐客户端选择。
官方文档提供了非常多的安装方式,个人还是比较喜欢 Docker Compose 来安装启动,配置可以参考我的 dockerfile。
git clone https://github.com/einverne/dockerfile.git
cd navidrome
# create and modify .env
docker-compose up -d
# check log
docker-compose logs -f
因为我个人使用 [[Nginx Proxy Manager]] 来反向代理 Navidrome 实例,所以里面多配了一些 Nginx 代理的选项,可以根据自己的需要配置。如果不配置 Nginx 代理,可以直接使用端口来访问。
panic: chi: routing pattern must begin with ‘/’ in ‘”“/auth’
如果安装的过程中遇到这个报错,那么查看一下 docker-compose.yml 文件中的 ND_BASEURL
,如果留空就会抛出上面的错误。
比如,安装完成之后访问 http://your-vpsip:4533/,首次登录会要求创建管理员账户,和密码。
一旦完成安装,就会发现 Navidrome 在扫描音乐库了。登录后台,进行个性化的配置,比如修改语言,对接 Last.fm,ListenBrainz 等等。至此,Navidrome 音乐服务端已经安装完成。
等路自己的 Last.fm 帐号
访问 https://www.last.fm/api/account/create 创建一个 API 账户,填写应用程序名称。获取 API Key 和 Shared Secret。
然后将值分别放到 Docker
ND_LASTFM_ENABLED=true
ND_LASTFM_APIKEY
ND_LASTFM_SECRET
ND_LASTFM_LANGUAGE
配置好重启容器之后,在后台记得开启 Scrobble to Last.fm 。
首先创建一个免费的 Spotify 账户,然后访问开发者面板 填写表单,创建。获取 Client ID 和 Client Secret。
添加 Spotify 有一个好处就是可以显示歌手艺术家的照片,图像从 Spotify 获取。
ND_SPOTIFY_SECRET
官方文档上提供了非常多的 客户端 选择。
客户端
个人推荐
brew install --cask sonixd
macOS 下的 Sonixd
Navidrome 的安装教程就到这里,如果你只是想要开箱即用的 ,如果想要了解 Navidrome 的进阶设置,可以收藏订阅本网站。
时隔多年,我再安装了一次 [[NextCloud]],很早之前 就在我的 QNAP TS 453B mini 上安装并使用了多年,这两年也一直在跟随着官方的版本升级 ,但是 QNAP 毕竟在局域网内,虽然可以使用 Tailscale,ZeroTier 等等工具来组件局域网,但毕竟还是不方便,最近入手一台还不错的 VPS,所以想着再搭建一个公有 IP 的 NextCloud,一方面备份一下自己的相册,另一方面也补足一下我自己使用 Syncthing时没有在线预览的页面,导致常常有些时候想访问自己的笔记而找不到。
在调研的时候发现 NextCloud 现在有两个比较常用的镜像,一个是我之前一直使用的 nextcloud 镜像,调查了一下才发现原来这个镜像是社区维护的,官方还推出了一个 All-in-One 的镜像,集成了 NextCloud 所依赖的组件,包括数据,Web 服务器等等。因为我个人还是对原来的那个 nextcloud 镜像比较熟悉,所以还是用来原来的那个镜像,一来镜像比较小,而来比较轻量,可以自己选择需要的组件,搭配 MySQL (Maria) 还是比较好维护的。
NextCloud 的 Docker 镜像有两个:
一个是社区维护的,一个是包含了其他依赖组件的多合一镜像。如果非要说区别,就是 nextcloud 镜像比较小,只包含了 Nextcloud 自身,需要用户自己准备数据库,Web 服务器等。而 All-in-One 镜像则包含了数据库,Web 服务器等等,但是镜像的提及也比较大。All-in-One 的镜像中包含了 Apache,Database,Nextcloud,Notify Push,Redis,Collabora,Talk,Imaginary 等等组件。
通过环境变量来配置 SMTP
SMTP_HOST
(not set by default): The hostname of the SMTP server.SMTP_SECURE
(empty by default): Set to ssl
to use SSL, or tls
to use STARTTLS.SMTP_PORT
(default: 465
for SSL and 25
for non-secure connections): Optional port for the SMTP connection. Use 587
for an alternative port for STARTTLS.SMTP_AUTHTYPE
(default: LOGIN
): The method used for authentication. Use PLAIN
if no authentication is required.SMTP_NAME
(empty by default): The username for the authentication.SMTP_PASSWORD
(empty by default): The password for the authentication.MAIL_FROM_ADDRESS
(not set by default): Use this address for the ‘from’ field in the emails sent by Nextcloud.MAIL_DOMAIN
(not set by default): Set a different domain for the emails than the domain where Nextcloud is installed.搭建之后使用系统的检查,建议使用 Redis 来做缓存,所以又加上了 Redis。
REDIS_HOST
(not set by default) Name of Redis containerREDIS_HOST_PORT
(default: 6379
) Optional port for Redis, only use for external Redis servers that run on non-standard ports.REDIS_HOST_PASSWORD
(not set by default) Redis passwordNautilus File Manager
davs://example.com/nextcloud/remote.php/dav/files/USERNAME/
KDE Dolphin File Manager 中
webdav://example.com/nextcloud/remote.php/dav/files/USERNAME/
https://cloud.YOURDOMAIN.com/remote.php/dav/files/USERNAME/
https://example.com/nextcloud/remote.php/dav/files/USERNAME/
可以通过 https://data.einverne.info/settings/admin/serverinfo 来查看当前 PHP 支持的最大上传大小。
默认情况下是 512MB 大小。
修改 Docker 的环境变量
PHP_MEMORY_LIMIT=2048M
PHP_UPLOAD_LIMIT=2048M
然后就可以得到
当然如果你使用 All-in-One 的 NextCloud 镜像,那就不用担心这个问题了,默认就是 10GB,应该能满足 99%的需求了。
检查的时候遇到如下的问题:
The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips ↗.
直接在 [[Nginx Proxy Manager]] 中启用 HSTS 即可。
如果遇到如下的问题
The database is used for transactional file locking. To enhance performance, please configure memcache, if available. See the documentation ↗ for more information.
然后安装 Redis,然后配置 Redis 即可。
Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add “default_phone_region” with the respective ISO 3166-1 code ↗ of the region to your config file.
对应此问题,在 NextCloud 的 config 配置中添加 sudo vi ~/nextcloud_data/config/config.php
'default_phone_region' => 'JP',
然后重启容器即可。
需要修改 sudo vi ~/nextcloud_data/config/config.php
,然后添加
'overwriteprotocol' => 'https',
最终:
'dbtype' => 'mysql',
'version' => '27.1.3.2',
'overwriteprotocol' => 'https',
之前我都一直使用 [[Plex]] 来同步看视频,基本上可以做到秒级别的共享观看。今天看 GitHub 的时候发现一款叫做 SyncTV 的应用,也是可以通过同步的方式了共享观看视频流,那这样就可以一起看视频,看直播了。原来 Plex 的因为放在了一台欧洲的服务器上,在国内播放的时候总是会出现卡顿,一来是带宽限制,二来是经常发现有转码,所以常常需要我预先转码为低码率的视频才能流畅播放,出现的这个 SyncTV ,我可以搭配一台地理位置比较好的,比如日本的机器,然后通过代理的方式播放,不知道会不会提升一下使用体验。
SyncTV 使用同步的功能,确保了观看视频的人都在同一个时刻,并且可以暂停,回退,快进,每一个人的状态也都是同步的。SyncTV 也支持直播流。SyncTV 也提供了一个私密的 Theater,可以在其中进行聊天,实时交流。
SyncTV 是一个可以让用户远程一起观看电影或者直播的程序,SyncTV 使用 Go 语言编写。它提供了同步观看,在线聊天的功能。使用 SyncTV 可以与朋友和家人一起观看视频和直播。
SyncTV 可以保证所有观看的人都在同一个时间点上,这意味着暂停、回退或者快进视频都可以同步到其他人,SyncTV 不仅可以添加视频流,还添加直播流。
功能:
[[SyncTV]] 因为是 Go 语言实现,所以可以直接通过脚本二进制安装,我这里则使用 Docker 安装,详细的配置可以参考我的 dockerfile。
安装完成之后可以通过 [[Nginx Proxy Manager]] 或其他工具反向代理端口。
因为我安装的时候把目录映射到了 ~/synctv
下, 所以可以修改该目录下的配置文件来配置 SyncTV。
可以简单看一下默认的配置文件
❯ cat ~/synctv/config.yaml
log:
enable: true
# can be set: text | json
log_format: text
# if it is a relative path, the data-dir directory will be used.
file_path: log/log.log
# max size per log file
max_size: 10
max_backups: 10
max_age: 28
compress: false
server:
http:
listen: 0.0.0.0
port: 8080
# enable http3/quic need set cert and key file
quic: true
cert_path: ""
key_path: ""
rtmp:
enable: true
listen: "" # default use http listen
port: 0 # default use server port
jwt:
secret: rN
expire: 48h
database:
# support sqlite3, mysql, postgres
type: sqlite3 # default: sqlite3
# when type is not sqlite3, and port is 0, it will use unix socket file
host: ""
port: 0
user: ""
password: ""
# when type is sqlite3, it will use sqlite db file or memory
db_name: synctv # default: synctv
# mysql: true, false, skip-verify, preferred, <name> postgres: disable, require, verify-ca, verify-full
ssl_mode: ""
# when not empty, it will ignore other config
custom_dsn: ""
# sqlite3 does not support setting connection parameters
max_idle_conns: 4
max_open_conns: 64
conn_max_lifetime: 2h
conn_max_idle_time: 30m
oauth2:
providers:
github:
client_id: 55a
client_secret: 3ea33
redirect_url: ""
google:
client_id: 2382
client_secret: GOC
redirect_url: ""
plugins: []
rate_limit:
enable: false # default: false
period: 1m
limit: 300
# configure the limiter to trust X-Real-IP and X-Forwarded-For headers. Please be advised that using this option could be insecure (ie: spoofed) if your reverse proxy is not configured properly to forward a trustworthy client IP.
trust_forward_header: false # default: false
# configure the limiter to use a custom header to obtain user IP. Please be advised that using this option could be insecure (ie: spoofed) if your reverse proxy is not configured properly to forward a trustworthy client IP.
trusted_client_ip_header: ""
vendor:
# default use local vendor
bilibili: {}
默认使用 sqlite3 作为数据库,自己用也差不多可以了。
启动之后,进入网页,非常简洁,因为配置了使用 GitHub OAuth2,所以直接使用 GitHub 登录。
登录之后可以创建房间,然后在设置中添加播放的地址,视频直链,或者直播源,或者 Bilibili 视频,因为 B 站视频最简单,我就尝试了一下,但是发现 SyncTV 只能解析 480P 的视频源,还是有一些影响观感的。
如果不想看了依旧可以左下角删除房间,这些操作需要房主才可以操作,其它人只能播放或者暂停。
如果要添加视频直链,可以考虑一下使用 [[AList]] 或者直接 Nginx 共享一个出来。
Coolify 是一个可以自托管的,类似 [[Heroku]] / [[Netlify]] / [[Vercel]] 的 [[PaaS]] 服务。
用户只需要在后台点击就可以托管应用,数据库,或其他开源服务。
Coolify 是一个开放源代码的项目,但是如果你觉得 Coolify 很棒,也可以通过付费,或者捐赠来支持作者。
为了安装 Coolify 需要满足最低的资源要求
在 root 下,一键安装脚本
apt install curl wget git jq jc
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
上述一键安装的脚本,会安装 Docker 并做一些配置,并启动 Coolify 容器。
注意容器启动之后会使用 8000 端口,注意在防火墙中放行。Coolify 还会用到如下的端口
需要注意的是如果使用 Coolify 自带的应用安装,可能有一些应用需要提供域名,单纯的使用 IP 和端口无法正常访问。
安装之后,第一个注册的用户就是管理员,可以查看部署所有的资源,应用等等。
因为 Coolify 是基于 Docker 的,所以也可以选择手动安装。
之后每个注册的用户都拥有自己的团队,资源,只能访问自己的资源。
服务列表
支持服务列表包括并不局限于如下:
sslip.io is a DNS server that maps specially-crafted DNS A records to IP addresses (e.g. “127-0-0-1.sslip.io” maps to 127.0.0.1).
其实这本书的名字早就已经知道了,但是最近女朋友听完 [[沈易斐]] 教授的播客之后说想看看,那就约定一起看。
译者
[[阿德勒]] 出生于 1870 年,虽然是个「古人」,但是其思想却非常现代,孕育了非常多现代心理咨询流派的思想种子。
阿德勒的重要思想
在我们挣脱之后,阿德勒把全部的人生责任和选择的权力交给了自己。我们之所以裹足不前是因为我们自己怨天尤人,责怪父母,责怪社会。正如书名《被讨厌的勇气》,承担这种自由和责任,需要的是无畏的勇气。勇气也是阿德勒心理学的关键字,是我们人生问题的答案。
怎么样才可以改变自己的生活方式呢?
[[有限游戏]] 是一个有胜者的游戏,而 [[无限游戏]] 是一个以延续游戏为目的的游戏。
如果意识到竞争或胜负,那么势必就会产生自卑感,常常拿自己和别人相比就会产生「优于这个,输给那个」的想法,而自卑情结或优越情结就会产生。
竞争的可怕之处就在于此即便不是败者,即便一直立于不败之地处于竞争之中的人也会一刻不得安宁,不能成为败者。 而为了不成为败者,就必须一直获胜,不能相信他人之所以有很多人,虽然取得了社会性的成功,但却感不到幸福,就是因为他们活活在竞争之中,因为他们眼中的世界是敌人遍布的危险所在 。
三大课题:
阿德勒把成长过程中可能产生的关系划分成了这三大类。三大课题统称人生课题。
当人能够感觉到与」这个人在一起可以无拘无束的时候,才能够去体会到爱。既没有自卑感,也不必炫耀优越性,能够保持一种平静而自然的状态。[[爱情]]
阿德勒把这种企图设立种种借口来回避人生课题的情况叫做人生谎言 。
过于希望得到别人的认可,就会按照别人的期待生活,也就舍弃真正的自我,活在别人的人生之中。
如何获得勇气:
共同体感觉
如何获得幸福
我觉得这本书任何人都可以看。
今天 macOS 上又发生了一个奇怪的问题,昨天晚上因为没有连接充电线,所以导致 MacBook 晚上自动关机了,看起来是因为没电自动关机了,但是早上看的时候还有一点点电,白天的时候没有任何操作就直接充电到满,但是晚一些使用的时候就发现系统的时间不太对了,在系统设置中强制同步系统时间,但没有用处,每一次同步都比当前的时间慢了一天和几个小时,甚至连分钟都对不上。于是就开始了一系列的修复过程。
因为操作系统时间已经不对了,所以无论访问什么网页,都会因为时间对不上而被安全证书拒绝访问,所以我只能将系统的时间手动修正为大致准确的。然后通过浏览器查询解决方法。
我怀疑的第一个问题就是,是不是 Apple 自带的 NTP(Network Time Protocol,时间服务器)出错了,因为即使是我手动修正正确的时间,只要使用这个 Time Server 同步一下,时间就错了。
所以我在网上找了一些其他公司公开的 NTP 服务
但问题在于,我试了两个,发现 macOS 都会把时间纠正错误。这个时候我就有点担心是不是最近升级了操作系统的问题,但是这个问题也没有解,毕竟也不能降级,所以我将问题点移动到了,是不是在 Intel 的 macOS 上的 NVRAM 和 SMC 这两块存储芯片因为断电的问题出错了。
macOS 上的 NVRAM(非易失性随机存储器) 和 PRAM (参数随机存储器)是有可能因为断电而倒置出错的。之前有一次出现问题,联系客服的时候,客服那边知道了这个操作。
简单的记录
S.M.C 是 System Management Controller 的缩写,是 macOS 上的一块微控制器,在 Intel 芯片的 Mac 上同来处理不同的电源,灯光,传感器等等硬件。
重置 SMC
具体可以参考这篇文章
但重置了这两个微芯片之后还是还是没有解决这个时间的问题,使用 NTP 服务同步一下时间,就又错位了。
在尝试了所有我知道的解决方法之后,就只能求助于 Google 了,我使用 macos 时间 错误 ntp 等等关键字,进行了一番搜索。发现了一些可能的问题。
macos date wrong
尝试看看英文的帖子有没有出现过类似的问题,果不其然,官方的 论坛 上就有类似的问题然后我按照这个帖子上面的方法,执行了如下的命令
sudo sntp -sS time.apple.com
然后竟然好了!
Podwise 是一个针对播客的笔记软件,过去很长的一段时间里面都在寻找能够给播客记笔记的应用,之前在移动端发现了一个 [[Snipd]],可以在听到的时候,记录下播客中的精彩瞬间,还可以做笔记。但今天发现的这一款 Podwise 是基于网页的,可以在网页中播放,并且 Podwise 提供了语音转写的文字稿。
进入网站之后,可以通过热门,或者搜索来添加自己常听的播客内容,然后使用站内的语音转写就可以生成文字稿等等,不过需要注意的是这个转写以及总结的功能是需要高级会员的,如果你使用我的邀请链接来注册的话,会有 15 天的高级会员体验。
你可以通过手动搜索,或者直接添加 RSS 的方式来添加播客内容。
Podwise 是一个集成了很多功能的应用,不仅可以给播客编写笔记,还可以:
Mindmap,这一集播客的思维导图。
Keywords 播客的关键字
Highlights 播客中精彩的部分
Transcripts,直接将语音变成了文字,那这样就可以非常容易的进行搜索。
Show notes,播客作者的编写的内容
在 Podwise 平台上记录的内容,可以通过关联,导入到自己喜欢的笔记软件中。比如 Notion,Readwise 中。
当前 Podwise 正在黑五促销,如果有需要的话,也不妨先去体验一下,然后再购买。
之前有写过一篇 Wise 实体卡 的文章,后来到了日本之后发现其实还有很多数字银行,比如本文的主角 [[Revolut]]。日本本地也有一些,比如 2015 年创立的数字金融科技公司 [[Kyash]]。文本就着重说一下 Revolut 账户的申请,以及为什么要创建 Revolut 数字银行卡。
因为之前的文章已经有了详细的说明 ,这里就简短的介绍一下,Revolut 是一家英国的金融科技银行,由两位年轻的英国创始人创建。用户可以在 Revolut 开户、办理 VISA/MasterCard 卡、进行货币兑换和刷卡取现等操作,但是它没有实体分支机构,所有操作都通过手机应用程序完成。
两位创始人创办 Revolut 的原因也和流传很久的 Uber,Airbnb 的故事如出一辙,Uber 的创始人在法国出差的时候打不车所以萌生了在手机上叫车的想法,而 Revolut 的创始人也是一样,厌倦了传统银行繁琐复杂的外汇业务,以及高额的货币兑换手续费,所以迎合了移动支付的场景,在手机上创建了 Revolut,年轻人可以在应用内快速的转换货币,并且拥有了一张卡走遍全世界的能力。Revolut 支持 140 多种货币的支付。
Revolut 有三种账户等级,月费从 US$0 到 US$16.99 不等。高级账户提供更多服务,根据个人需求选择最适合的账户。如果经常需要兑换外币和旅行,或者存款较高,选择 Premium 或 Metal 可能比免费的 Standard 账户更划算。
账户种类 | 月费 | 服务 |
---|---|---|
Standard | 0 USD | 每个月 10 次免手续费汇款 2.5% 存款年利率 免费实体卡 |
Premium | 9.99 USD | 周一至周五无限额度免手续费兑换外币 90 天购物保证 3.9% 存款年利率 医疗和保险利率 |
Metal | 16.99 USD | 18K 金属借记卡特快配送 周一至周五无限额度免手续费兑换外币 90 天购物保障 3.9%存款年利率 医疗和旅游保险 |
开户需要材料
Revolut 日本汇款日元到中国银行,没有中间行和目的行的手续费。
在日本有一种特殊的制度,叫做「扶養控除」,就是证明你在海外有需要赡养的老人,那么在年末调整的时候就可以从税中控除一部分。但是抚养控除需要转账 38 万日元的记录,如果使用传统银行的外汇转账服务,此时就需要折损掉非常大一笔手续费,但是如果通过 Revolut,中间行的手续费可以节省一些,但是因为不同时间段可能处理不一样,在使用之前还是需要提前了解一下 Revolut 的转账手续费的。
[[CSR]] (Certificate Signing Request),即证书签名请求文件,证书申请人在申请数字证书时由 CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请人只需要把 CSR 文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。
申请人需要生成 CSR 文件并提交给证书颁发机构(CA)。CSR 包含了用于签发证书的公钥、用于辨识的名称信息(Distinguished Name)(例如域名)、真实性和完整性保护(例如数字签名),通常从 Web 服务器生成 CSR,同时创建加解密的公钥私钥对。
要生成 CSR 文件,需要在 Linux 系统中,使用 OpenSSL 命令行工具。
然后执行以下命令,即可生成 CSR 文件。
openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout $Key_File -out $OpenSSL_CSR
根据系统返回的提示,输入 CSR 文件所需的信息。以下是关于提示的说明:
按照命令提示输入相应内容后,即可在当前目录下获取密钥文件和 CSR 文件。
[[PEM]] (Privacy Enhanced Mail) 格式是一种用于存储和传输密钥数据的常见格式,通常用于包含加密证书、密钥、数字证书和其他安全相关信息。
PEM 格式的数据通常以文本形式编码,但可以包含二进制数据。PEM 格式的文件通常使用扩展名为 .pem
、.crt
、.cer
、.key
或 .p12
。用户可以使用任何文本编辑器打开,但通常更推荐使用 OpenSSL 或其他密码学工具集进行处理。
[[PFX]] 是 Personal Information Exchange 的缩写,一种用于存储和传输数字证书和私钥的文件格式。它是一种二进制格式,使用 PKCS#12 标准来存储数据。
PFX 文件通常以 .pfx
或者 .p12
扩展名结尾。
PFX 文件和 PEM 文件的主要区别在于,PFX 文件包含私钥,而 PEM 文件仅包含公钥。这使得 PFX 文件比 PEM 文件更安全一些,因为私钥只能由拥有密码的用户访问。
从 [[DigiCert]] 公司获取证书的流程:
从 DigiCert 官网获取证书文件,然后使用命令行工具生成 PFX 文件。
利用 OpenSSL 工具将私钥和证书文件合成 PEM 以及 PFX 文件。
openssl pkcs12 -export -inkey private.key -in certificate.crt -out certificate.pem
合成 PFX 文件
openssl pkcs12 -export -inkey private.key -in certificate.crt -out certificate.pfx