# FTPS
FTP over SSL Server and Client, supoort:</br>
> USER, PASS, BYE
> PASSIVE
> PWD, CWD, LIST
> RETR, STOR
> AUTH, CCC
## 1. Generate Certificates
```bash
#gen local CA's key: rootkey.pem and certreq: rootreq.pem with passwd: ftps
openssl req -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.pem -config root.cnf
#gen local CA's cert: rootcert.pem
openssl x509 -req -in rootreq.pem -sha1 -extfile root.cnf -extensions certificate_extensions -signkey rootkey.pem -out rootcert.pem
#bind local CA's cert & key
cat rootcert.pem rootkey.pem > root.pem
#gen serverCA's key: serverCAkey.pem and serverCA's certreq: serverCAreq.pem with key:ftpsserverca
openssl req -newkey rsa:1024 -sha1 -keyout serverCAkey.pem -out serverCAreq.pem -config serverCA.cnf
#local issue serverCA cert:serverCAcert.pem
openssl x509 -req -in serverCAreq.pem -sha1 -extfile serverCA.cnf -extensions certificate_extensions -CA root.pem -CAkey root.pem -CAcreateserial -out serverCAcert.pem
#bind serverCA's cert chain.
cat serverCAcert.pem serverCAkey.pem rootcert.pem >serverCA.pem
#gen server's key:serverkey.pem & certreq:serverreq.pem with key:ftpsserver
openssl req -newkey rsa:1024 -sha1 -keyout serverkey.pem -out serverreq.pem -config server.cnf -reqexts req_extensions
#serverCA issue server cert: servercert.pem
openssl x509 -req -in serverreq.pem -sha1 -extfile server.cnf -extensions certificate_extensions -CA serverCA.pem -CAkey serverCA.pem -CAcreateserial -out servercert.pem
#bind server's cert chain:
cat servercert.pem serverkey.pem serverCAcert.pem rootcert.pem > server.pem
#gen client's key: clientkey.pem and certreq: clientreq.pem with key:ftpsclient
openssl req -newkey rsa:1024 -sha1 -keyout clientkey.pem -out clientreq.pem -config client.cnf -reqexts req_extensions
#local CA issue client cert: clientcert.pem
openssl x509 -req -in clientreq.pem -sha1 -extfile client.cnf -extensions certificate_extensions -CA root.pem -CAkey root.pem -CAcreateserial -out clientcert.pem
#client's cert chain
cat clientcert.pem clientkey.pem rootcert.pem > client.pem
```
## 2. generate DH paramenter
dh512.pem & dh124.pem must be set into a absolute path, i.e., `/opt/`
```bash
#dh512
openssl dhparam -check -text -5 512 -out dh512.pem
#dh1024
openssl dhparam -check -text -5 1024 -out dh1024.pem
```
## 3. compile
Server listen on port: 9876</br>
Client connect to localhost:9876</br>
```bash
cd server
gcc -DSERVER -DDHPATH="\"/opt/\"" -DFTPPATH="\"/home/fan/work/ftp/\"" -g -o server *.c ../*.c -lssl -lcrypto
cd client
gcc -g -o client *.c ../*.c -lssl -lcrypto
```
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ftps.rar (49个子文件)
ftps
iocontrol.c 6KB
client
client 122KB
protocol.h 7KB
main.c 341B
test 7B
client.pem 3KB
protocol.c 23KB
server.crt 1KB
server.key 2KB
server
server.pem 4KB
server 128KB
protocol.h 8KB
dh512.pem 493B
main.c 290B
dh1024.pem 827B
test 8B
rootcert.pem 1KB
protocol.c 25KB
tlssupport.c 8KB
network.h 806B
iocontrol.h 933B
rootcert.pem 1KB
network.c 2KB
CA
server.pem 4KB
serverkey.pem 1KB
dh512.pem 486B
serverCA.srl 17B
root.cnf 1KB
root.srl 17B
dh1024.pem 820B
server.cnf 1KB
rootkey.pem 1KB
serverCAreq.pem 655B
rootreq.pem 615B
rootcert.pem 1KB
clientkey.pem 1KB
client.cnf 1KB
serverCAkey.pem 1KB
servercert.pem 904B
client.pem 3KB
root.pem 2KB
serverCAcert.pem 1KB
clientreq.pem 712B
serverCA.cnf 1KB
serverreq.pem 712B
clientcert.pem 867B
serverCA.pem 3KB
tlssupport.h 714B
README.md 3KB
共 49 条
- 1
资源评论
- zhou4u2022-05-21用户下载后在一定时间内未进行评价,系统默认好评。
- yeyue2772022-05-27用户下载后在一定时间内未进行评价,系统默认好评。
fan·先生
- 粉丝: 1
- 资源: 5
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功