简单说明
在制作证书之前,先简单说明一下关于制作域名证书的几个文件,分别是:*.csr、*.key、*.crt。
*.key:主机私用秘钥。
*.csr:证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。
*.crt:CA认证后的证书文件,由签署人用自己的key给你签署的凭证。
这三种文件其实可以在主机上制作,但也有更加简单快捷的方法,我一般通过网站来制作秘钥和证书请求文件,最后在主机上生成证书,给域名使用。
CSR文件生成网站
网址:https://www.chinassl.net/ssltools/generator-csr.html
只需要将证书相关信息填入到其中,点击生成CSR文件即可,例如:
注:这里的域名需要对应nginx中的域名,否则证书将无法使用
可以选择将证书文件发送到个人邮箱,或者是选择在线生成,我这里直接生成
可以选择直接将文件下载下来,或者直接复制内容,这里我创建两个以域名开头的对应文件
mkdir /ssl
cd /ssl/
touch www.ssltest.com.csr
touch www.ssltest.com.key
然后将对应文件内容粘贴到linux的文件中,直接vim,然后拷贝,或者通过echo 添加都可,内容添加完成后,开始制作CA自签证书。
制作CA自签证书
注:制作证书要确保有openssl命令
openssl x509 -trustout -req -days 365 -in www.ssltest.com.csr -signkey www.ssltest.com.key -out www.ssltest.com.crt
以下为成功字样
到这里证书就制作完成了,接下来安装一个nginx,进行测试
测试nginx安装
下载依赖
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
下载nginx
wget https://nginx.org/download/nginx-1.18.0.tar.gz
创建运行用户
useradd www
解压,预编译,编译安装
tar xf nginx-1.18.0.tar.gz
cd nginx-1.18.0/
./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www --with-stream
make -j $( grep processor /proc/cpuinfo | wc -l) ; make install
安装完成之后,简单配置一下ssl,修改项过于简陋,仅用于测试效果
vim /usr/local/nginx/conf/nginx.conf
原配置不变,只根据ssl配置修改
添加完成后,修改一下默认页内容
echo "SSL Domain Name TEST" > /usr/local/nginx/html/index.html
启动nginx
/usr/local/nginx/sbin/nginx
访问测试
Linux主机访问测试
主机直接访问,因为没有DNS解析记录,会请求未响应
需要在主机的hosts文件中添加IP与域名
添加完成后,就可以以HTTP的方式访问了
接下来使用HTTPS的方式进行访问
这里提示证书不受信,只需要将证书的路径指定一下就可以正常访问了
curl --cacert /ssl/www.ssltest.com.crt https://www.ssltest.com
windows主机访问测试
老样子,在hosts文件中添加解析记录,路径位于:C:\Windows\System32\drivers\etc下
将IP与域名的对应关系添加到其中,添加完成后,开始访问测试.
访问成功,配置完成