安装好 openssl
,ubuntu是自带的
这里生成的文件是一个*.pem
,包括私钥和未签名证书,是用来给pyftpdlib搭建的ftp服务器启用ftps传输用的
因为只用来ftps传输,就不用自己建一个CA然后自己给自己签名了,流程要简单得多!
文件key_cert.pem
格式如下:
# key_cert.pem 包含key和certification的pem文件
-----BEGIN RSA PRIVATE KEY-----
# 私钥base64编码
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
# 证书base64编码
-----END CERTIFICATE-----
openssl生成操作
# 打开openssl
ubuntu:~/web/ssl$ openssl
# 自动生成私钥和证书
OpenSSL> req -new -x509 -nodes -out server.crt -keyout server.key -days 365
Generating a RSA private key # 程序说他正在生成私钥
........+++++
...................+++++
writing new private key to 'server.key'
----- # 这里私钥server.key就生成好了,下面生成证书(无签名),填写证书信息
You are about to be asked to enter information that will be incorporated # 需要填写证书上的相关信息
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:cn # 国家
State or Province Name (full name) [Some-State]:sc # 行省
Locality Name (eg, city) []:cd #城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:gr # 组织或公司名
Organizational Unit Name (eg, section) []:zj # 部门
Common Name (e.g. server FQDN or YOUR name) []:zs # 名字
Email Address []:wu # 邮箱
OpenSSL> #生成证书也完毕了
# 退出openssl
OpenSSL> exit
# 查看生成的文件
ubuntu:~/web/ssl$ ls
server.crt server.key # 诚不我欺,生成好了,下面查看
ubuntu:~/web/ssl$ cat server.crt
-----BEGIN CERTIFICATE-----
MIIDozCCAougAwIBAgIUSFemMbyZktsW2jXChPitA3vEjsMwDQYJKoZIhvcNAQEL
...
-----END CERTIFICATE-----
ubuntu:~/web/ssl$ cat server.key
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDSV/tl1htcx1LS
...
-----END PRIVATE KEY-----
ubuntu:~/web/ssl$
合并制作keycertFTP.pem
文件
ubuntu:~/web/ssl$ ls
server.crt server.key
# 把证书追加要私钥文件尾部
ubuntu:~/web/ssl$ cat server.crt >> server.key
# 把追加后的文件重命名,免得搞混了
ubuntu:~/web/ssl$ mv server.key keycertFTP.pem
ubuntu:~/web/ssl$ ls
keycertFTP.pem server.crt # 文件生成好了,复制到ftp的文件夹根目录就可以用了