可以从http服务器log看出尝试phpmyadmin密码的肉鸡多得很。我也在服务器上部署了phpmyadmin,为了安全想只让我的电脑能访问。于是使用了一个别人猜不到的域名作为virtual host的server name部署在http服务器上并在本机修改hosts文件使对于这个域名的访问指向我的服务器,这样就只能通过这个只有我知道的域名访问服务器才会展示phpmyadmin页面,十分安全。
为了进一步的安全就再加https。本来使用了默认选项且已把生成的CA添加到我电脑的受信任根证书中但浏览器还显示NET::ERR_CERT_COMMON_NAME_INVALID。然后才知道为了多域名的支持原来现在的浏览器已经不通过Common Name字段来判断证书是不是属于这个域名了,而是通过X509v3扩展中Subject Alternative Name字段来鉴别。一番摸索后总算成功了,看到左上角绿色图标后我欣慰地剥开一个橘子站着享用了。
记录流程以备后用:
1、为自己签发CA证书
首先生成CA证书私钥。之后服务器私钥生成也是用这个语句
然后使用私钥生成CA证书。CA证书有效期通常很长,于是我也设了十年
运行上面语句后还会提示填写一些信息,随便填即可
生成完毕后不能忘了要把根证书安装到“受信任的根证书颁发机构”才能让本机对其下游证书可信
2、用CA证书签署网站证书
这步一样,先生成网站证书的私钥
随后生成csr请求文件
这里的Common Name不能填写得和之前做CA证书的一样,否则会报错无法成功签发
failed to update database
TXT_DB error number 2
不过坠吼的方法还是把 /etc/pki/CA 下index.txt.attr里的yes改为no以免后顾之忧
正式颁发证书激动人心的时刻
FAQ
(没人会frequently ask我的。。只是做的过程中自己产生的问题)
1、为何做csr文件和CA签署出crt时都需要SAN字段的配置文件?如果只有一个会怎样?
网上的教程清一色全是在两步都要使用带SAN的config,于是我亲身试毒。如果只在做csr时填,openssl在签署时会采用默认配置/etc/pki/tls/openssl.cnf中的X509配置,不会带有SAN字段,反而带有默认配置中的其他字段。
而如果只在CA签署时配置带SAN。。
AMAZING!出来的crt是带SAN字段的,放服务器上试验,浏览器也是能接受的!所以并不一定两步都要用带SAN的config,生成csr时只需使用如下语句,在最后CA签署时带SAN即可!
2、根据X509证书链规则,使用website.crt和website.key继续签发的证书是否有效。进一步,不是自签名的证书,买来的证书(可以被所有浏览器接受的)继续向下签发又是否有效呢?
如知后事如何,且听下回分解
//远程连接Linux编辑shell代码十分不方便,为了以后便捷使用,机智的我让代码块在网页上就可编辑我已经被我折服了,再站着吃个橘子压压惊