nginx配置ssl证书教程

腾讯云SSL证书获取及Nginx配置教程 本文讲解了如何在腾讯云上获取SSL证书,并将其配置到Nginx服务器上,整体来说比较简单,但是对于新手来说无从下手,如果对于nginx不熟悉的同学更加寸步难行,本文也是把踩过的坑分享出来,比如上述SSL模块报错和SSL证书读取位置。通过以上步骤,可以为网站提供安全的HTTPS连接,保护用户的数据安全啦。​​ 阅读详情

配置 Nginx 的 SSL 证书,简单来说就是让你的网站从 HTTP 升级到 HTTPS,核心是获取证书并在 Nginx 配置中关联证书文件。

流程主要分三步:

🛠️ 1. 下载并上传证书

· 获取文件:在云服务商(如阿里云、华为云)下载证书,选择 Nginx 类型。你会得到两个核心文件:
· .crt 或 .pem:网站的身份凭证。
· .key:解密的钥匙,务必保密。
· 上传至服务器:建议将文件上传到 /etc/nginx/ssl/ 目录。

⚙️ 2. 修改 Nginx 配置

找到 Nginx 配置文件(通常为 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d 下的文件),增加或修改 server 块:

# HTTP 配置 (端口80): 强制跳转到 HTTPS
server {
    listen 80;
    server_name your-domain.com;  # 替换为你的域名
    return 301 https://$host$request_uri;
}

# HTTPS 配置 (端口443)
server {
    listen 443 ssl;
    server_name your-domain.com;  # 替换为你的域名

    # 👇 1. 配置证书和密钥 (替换为你的实际路径)
    ssl_certificate /etc/nginx/ssl/your-domain.crt;
    ssl_certificate_key /etc/nginx/ssl/your-domain.key;

    # 👇 2. 提升安全性 (推荐)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 👇 3. 配置你的网站
    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

🔄 3. 重启 Nginx

# 1. 测试语法是否有误,显示 successful 再继续
sudo nginx -t

# 2. 重载配置
sudo systemctl reload nginx

🔒 4. 验证效果

打开浏览器访问 https://你的域名,检查地址栏是否有小锁图标,安全即代表配置成功。

系统兼容提示:

· 如果是旧版 Nginx(1.15.0以下),请将 listen 443 ssl; 拆成 listen 443; 和 ssl on; 两行。
· 如果网站无法访问,请记得检查服务器防火墙是否放行了 443 端口。

配置完成后,别忘了证书有效期。大部分免费证书只有3个月,记得设置自动续期。需要我教你怎么设置自动续期吗?

Nginx保姆教程第四篇:Nginx使用Cerbot配置SSL证书 Certbot 是一个免费、开源的软件工具,主要用于自动化地从 Let's Encrypt 获取和续订 SSL/TLS 证书,从而为网站启用 HTTPS 加密。简单来说,它能帮助你轻松地为网站添加一把“安全锁”,让网站通过 https:// 访问,保护用户数据传输的安全。Let's Encrypt 是一个免费、自动化的证书颁发机构(CA),由互联网安全研究小组(ISRG)运营。Certbot 通常会自动完成 Nginx 的配置,但如果你需要手动配置,可以在 Nginx 配置文件(通常是。 阅读详情

相关推荐

2021 申请SSL证书、Nginx和SpringBoot配置阿里云SSL证书解决HTTP HTTPS及不生效、打包报错详细教程

2021 申请SSL证书、Nginx和SpringBoot配置阿里云SSL证书解决HTTP HTTPS及不生效、打包报错详细教程目录1. 获取SSL证书文件1.1 购买SSL证书1.2创建证书2. Nginx配置SSL2.1 开始Nginx配置2.2 Nginx.conf配置2.3 添加ECS安全组3. 开始配置SpringBoot SSL证书3.1 下载证书3.2 配置YML文件3.3 更改pom.xml3.4 更改入口文件3.5 重新maven install4. 问题导入 目录 1. 获取SSL证书

niaoyi0357的博客 1313

Nginx实现自签名SSL证书生成与配置

本文讲解了如何创建自签名的SSL证书,并讲解了什么是公钥、私钥、加密私钥以及签名和证书的概念,详细讲解了如何生成公钥、私钥、加密私钥以及如何签名生成证书,并且讲解了如何通过nginx的配置实现https的功能。提供了使用私钥的报错及解决方法

云计算之路 1万+

简易背单词系统C/C++

#include<stdio.h> #include<string.h> int F=20,N=100,k=0; int score[100]; int count=0; void hello(); void add(); void preview(); void mdelete(); void etc(); void cte(); void mscore(); void...

青木年华 9154

dotnetcore nginx ssl

修改default.conf文件 server { # listen 80; listen 80 ssl; server_name localhost; ssl_certificate /usr/share/nginx/html/*.com.pem; ssl_certificate_key /usr/share/nginx/html/*.com.key; ssl_session_timeout 5m; ssl_p...

wingao_hyg的专栏 471

自动驾驶关键技术(一):时间敏感网络TSN

时间敏感网络TSN的基本概念、协议族介绍和开发流程。

3080

cadence——MOS晶体管I-V特性曲线仿真

MOS晶体管I-V特性曲线仿真 目标:使用cadence绘制晶体管的I-V特性曲线(dc仿真) 流程: 新建原理图,将MOS管的栅极电压设为变量Vg,漏极电压设为变量Vd 打开ADEL,点击Variables——Copy From Cellview添加变量;并选择dc仿真,对Vd进行扫描 以Vg作为参变量进行仿真,点击Tools——Parametric Analysis进行设置 选择漏极电流作为输出,进行仿真即可得到I-V特性曲线 ...

skycmq的博客 1万+

nginx配置证书

引用证书(必须,放在conf/ssl目录下可以用相对路径,其他位置用自己定义的绝对路径)#自动跳转到HTTPS(可选,如果需要强制https可以添加该配置)3 配置完成后,重启nginx服务即可。#监听443端口(必须)#其他的配置信息···

Small_white_528的博客 767

【实战】ComfyUI-Impact-Subpack插件安装与UltralyticsDetectorProvider节点修复全流程

本文详细解析了ComfyUI中UltralyticsDetectorProvider节点缺失的原因,并提供了完整的ComfyUI-Impact-Subpack插件安装与修复全流程。核心在于Impact Pack插件架构调整导致节点被拆分至子插件包。指南涵盖手动安装、依赖安全配置、模型文件管理及深度排错步骤,帮助用户彻底解决节点缺失问题,恢复工作流正常运行。

weixin_29290947的博客 438

HTTPS证书配置

修改conf目录下NGINX中的crt和key文件。

qq_40711092的博客 743

CKA-CN考试之路----16

所以结合本题,如果有多个文件中都存在同一个值,务必统一,或者修改最后一个次序的文件。中以不同的文件名来区分不同目的的配置会更有利于阅读.就像本题中的。但当有多个文件中存在同一个参数的不同值,最后会生效哪个值?中,但随着配置越来越多不怎么容易阅读.当多个文件同时存在一个参数,但值又不同。有时候我们会将所有内存参数全部写在。确认服务状态(2个红框中的内容)

Q先生 301

OSPF规划两大模型:双塔奇兵、犬牙交错

大家好,今天给大家带来的是OSPF规划两大模型:双塔奇兵、犬牙交错,让我们直接开始吧! OSPF规划之双塔奇兵 说明: OSPF 如果某个区域存在两个 ABR,并且在两个 ABR 上都对 area n 内的路由做了聚合操作。 最佳配置: 两台ABR之间的红线应该使用以太网的子接口技术,一个子接口属于area0,另一个属于 area n;或者该链路规划为 area n,同时配置虚连接; ABR 的 loopback0 规划入 area 0 OSPF 规划之犬牙交错 说明: 有时接入层的设备会以乱序的

网络技术联盟站 2423

系统学习Linux-Nginx部署与证书配置

listen;监听端口域名location 指定访问的路径及默认文档root访问文档根目录index默认文档单网站直接启动就可以因为已经配好了直接就可以在外部主机访问在/etc/nginx/conf.d创建web1与web2并修改配置文件回到/etc/nginx/nginx.conf注释掉移动到/usr/share/nginx/html创建web1与web2文件这时我们就能访问到我们的网页(切换监听端口)完成一阶段。

weixin_66894765的博客 3537

Android Shadow插件化框架分析与集成(一)

到此为止,本篇文章先介绍到这里,本篇文章主要介绍了:从源码的角度去集成shadow框架,从下载源码开始,到集成到自己的项目中,其中插件项目我是新建的demo应用,宿主应用是之前搭的一个MVP框架。文章中一步一步详细的介绍了宿主该如何集成,并提供了源码;介绍了插件该如何集成,同时也提供了源码。文章中还介绍了gradle的版本与AGP版本使用不当造成的问题,以及shadow源码的gradle版本与APG版本的配置,及和宿主插件应用gradle版本与AGP版本的关系。

superzhang6666的博客 1235

分析一下,nginx上配置ssl时的pem证书

nginx上配置的ssl证书时注意事项

adminstate的博客 3103

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Nginx + SSL + Acme + Frp SSL免费证书申请+自动续期+反向代理配置 极细致教程

手把手带你配置ssl证书自动续期和反向代理,并指导如何代理frp内网穿透

2401_88223409的博客 1798

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

域名平台SSL证书及Nginx 配置SSL证书简易教程

1.linux服务器里生成.csr、.key的文件 首先第一步先登录自己的服务器,然后在自己的服务器上生成私钥和.csr的文件。 openssl req -new -newkey rsa:2048 -nodes -keyout 您的域名.key -out 您的域名.csr 用您保护的域名替换您的域名。 例如,如果您的域名是 coolexample.com,您可以键入 coolexample.key 和 coolexample.csr。 输入申请的信息 一般dv域名证书随便填写 注意common n

大IT职男日志 859

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

https的ssl证书申请及服务器的nginx的配置教程

1.获取阿里云证书,阿里云提供免费版和收费版,看自己的情况而定,我这里使用的是免费版 https://common-buy.aliyun.com/?spm=5176.2020520163.cas.3.726ftDZTtDZTIg&commodityCode=cas#/buy 以上为获取证书的地址 或者自己去找阿里云的ssl证书购买的地方 2.购买成功之后,在证书列表页面去申请 ...

Buggggggg 418

[特殊字符] Nginx + SSL + Acme + Frp SSL 免费证书申请+自动续期+反向代理配置极指导教程[特殊字符]

本教程详细介绍了如何配置Nginx服务器并实现HTTPS加密访问的全过程。主要内容包括:1) Nginx的安装与基础配置;2) 使用acme.sh工具申请Let's Encrypt SSL证书;3) SSL证书的部署与自动续期配置;4) Nginx反向代理设置;5) 与Frp内网穿透服务的配合使用;6) 进阶配置建议。教程特别强调配置过程中需要替换真实域名的注意事项,并提供了完整的配置代码示例。通过本教程,用户能够快速搭建支持HTTPS的安全Web服务,同时获得证书自动管理能力。教程还包含故障排查方法和性能

JoeyLee的博客 353

docker代理设置ssl证书_【5分钟教程】docker 搭建nginx并配置https

基于docker得教程以前也发过不少,但是结合技术解决实际问题才是我们需要关注得。Docker如此方便,跟宝典哥一起解锁新姿势。读完本文,你能学到得技能有:为什么要替换http为https?如何申请免费的https证书 ?https证书都长什么样子?什么场景使用?怎么将域名解析到服务器?基于Docker的nginx安装和使用通过nginx配置访问http域名通过nginx配置访问http...

weixin_39563132的博客 538

Django教程: 支持HTTPS访问及Nginx配置SSL证书

什么是HTTPS? 简单来说:HTTPS = HTTP + SSL / TLS 也就是在HTTP(超文本传输协议)上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。 HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),即安全套接字层超文本传输协议,它是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP

Johnny's Lab 6581

Nginx配置SSL证书教程

每次打开谷歌看到自己的网站总是显示不安全的图标,总是有种淡淡的忧伤,这是因为网站使用的是http而不是https, 那么怎么配置成https呢? 第一步: 在阿里云申请免费证书 (阿里云&gt;SSL证书管理控制台) 第二步: 下载已经通过审核证书的nginx 第三步: 在服务器中 /etc/nginx 新建cert 文件夹,里面存放刚刚下载的证书(.key和.pem) 注意:一定要scp证书...

Monkey_yang_zb的博客 699

Nginx 服务器配置SSL证书教程

本文介绍了如何将申请到的免费SSL证书配置到Nginx服务器实现HTTPS访问。首先下载包含.key和.pem文件的证书包,上传至服务器指定目录。然后在Nginx的配置文件(如/etc/nginx/conf.d/https.conf)中配置SSL证书路径,设置监听443端口并指定证书文件。最后执行nginx -s reload命令使配置生效。文章指出Nginx配置相对简单但需要一定Linux基础,并提示常见问题是找不到配置文件位置。整个过程完成后即可通过HTTPS访问网站或接口。

gzcsschen的博客 191

NGINX 配置 SSL 证书 + 搭建 HTTPS 网站教程

一、HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输。HTTPS不应与在RFC 2660中定义的安全超文本传输协议(S-HTTP

收集盒 Book box 1739

Nginx配置SSL证书教程:从零到HTTPS的完整部署指南

证书链不完整 补充配置ssl_trusted_certificate参数,或手动合并中间证书文件。

2301_78536879的博客 405
上一篇: 解决ssl证书问题,后端java必遇到,还在为高昂的证书费用困扰?免费Https SSL 数字证书!这个永久免费SSL证书平台,兼容所有浏览器。
下一篇: 可以一直使用的免费SSL证书申请和配置详细教程
gzcsschen
博客等级 码龄16年 72粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gzcsschen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值