CentOS 6.5系统LNMP环境安装SSL证书
2016-03-30 17:22
603 查看
本文转载自:https://typecodes.com/web/lnmppositivessl.html
SSL证书的安装跟博客程序(不管是wordpress或者typecho等等)无关,只是跟服务器的类型(比如Nginx、Apache或者IIS等)有关。
一、在web服务器上生成私钥、CSR签名请求文件
二、获取SSL证书提供商发放的数字证书
首先进入Namecheap的SSL证书管理界面,然后点击“Active Now”按钮准备购入SSL产品。这时会进入“Digital Certificate Order Form”页面,根据自己的web服务器类型在“Select
Web Sever”中选择,博主的是Nginx。接着在SecureCRT终端上执行命令
最后点击“Next”,这时的界面会显示你的域名Whois信息上的相关邮箱地址列表,你需要选择能正常接收验证码的域名邮箱(
三、配置服务器中Nginx文件
SSL证书提供商会在邮件中提供我们需要的四个.crt文件:
最后,我们需要修改Nginx的配置文件(/etc/nginx/conf.d/default.conf)来让Nginx启用https协议,示例如下:
这时访问www.typecodes.com或者typecodes.com都会自动跳转到https://www.typecodes.com了。因此,大功告成!
四、解决可能出现的问题
4.1 SSL证书在Firefox浏览器中出现警告
解决方法是如上面的操作所示,将所有证书文件合并即可。
4.2 解决"Chain issues - Contains anchor"的问题
如果在ssllabs.com中进行SSL效果测试时,发现"Chain issues - Contains anchor"的问题,那么可以尝试不要把
4.3 密钥.key文件的密码弄错
在生成密钥.key文件时,需要重复输入相同的密码两次,如果在接下来的步骤中输入错误的密码,就会出现上面这个错误。所以,我们最好执行上面推荐的步骤,去掉密码!
4.4 crt域名证书和密钥.key文件不匹配,则需要重头开始操作:
我们可以通过
match SSL” 则说明证书和密钥匹配。当然把之前生成的 typecodes.csr 中的内容粘贴到第二栏中也是匹配的。
五、针对typecho博客的数据库改动
操作数据库前,记得先备份!
5.1 更改博客url地址
5.2 更改博客作者的地址以及新浪SCS图片的路径
SSL证书的安装跟博客程序(不管是wordpress或者typecho等等)无关,只是跟服务器的类型(比如Nginx、Apache或者IIS等)有关。
----------操作说明---------- 系统: 阿里云CentOS 6.5 环境: LNMP(只需配置Nginx服务器就行) 操作工具: SecureCRT 7.0 博客程序: Typecho 14.10 SSL证书提供商: PositiveSSL from Namecheap
一、在web服务器上生成私钥、CSR签名请求文件
###### 1 生成2048bit的RSA私钥文件typecodes.key [root@typecodes ssl]# openssl genrsa -des3 -out typecodes.key 2048 Generating RSA private key, 2048 bit long modulus .......................+++ ...............+++ e is 65537 (0x10001) Enter pass phrase for typecodes.key: Verifying - Enter pass phrase for typecodes.key: [输入两次相同的密码] ###### 2 生成CSR证书签名请求文件typecodes.csr [root@typecodes ssl]# openssl req -new -key typecodes.key -out typecodes.csr Enter pass phrase for typecodes.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) [XX]:CN [国籍] State or Province Name (full name) []:GuangDong [省份] Locality Name (eg, city) [Default City]:ShenZhen [城市] Organization Name (eg, company) [Default Company Ltd]:TypeCodes.com [公司] Organizational Unit Name (eg, section) []:TypeCodes.com [行业] Common Name (eg, your name or your server's hostname) []:TypeCodes.com [自己的域名] Email Address []:vfhky@typecodes.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: [这里不填] An optional company name []: [这里不填] ###### 3 去掉密钥文件typecodes.key的密码 【强烈推荐】 [root@typecodes ssl]# cp typecodes.key typecodes.key.origin [root@typecodes ssl]# openssl rsa -in typecodes.key.origin -out typecodes.key Enter pass phrase for typecodes.key.origin: writing RSA key [输入之前的密码] ###### 4 当然也可用openssl通过私钥和CSR自己生成签名文件,但是可能不被浏览器认可,所以本步骤应该跳过 [root@typecodes ssl]# openssl x509 -req -days 365 -in typecodes.csr -signkey typecodes.key -out typecodes.crt Signature ok subject=/C=CN/ST=GuangDong/L=ShenZhen/O=TypeCodes.com/OU=TypeCodes.com/CN=TypeCodes.com/emailAddress=vfhky@typecodes.com Getting Private key ###### 5 查看上面4个步骤所产生的文件,其中typecodes.crt是不需要的 [root@typecodes ssl]# ls typecodes.crt typecodes.csr typecodes.key typecodes.key.origin
二、获取SSL证书提供商发放的数字证书
首先进入Namecheap的SSL证书管理界面,然后点击“Active Now”按钮准备购入SSL产品。这时会进入“Digital Certificate Order Form”页面,根据自己的web服务器类型在“Select
Web Sever”中选择,博主的是Nginx。接着在SecureCRT终端上执行命令
[root@typecodes ssl]# cat typecodes.csr,然后复制从
-----BEGIN CERTIFICATE REQUEST-----到
-----END CERTIFICATE REQUEST-----中的所有内容再粘贴到“Enter csr”下面的空白栏中。
最后点击“Next”,这时的界面会显示你的域名Whois信息上的相关邮箱地址列表,你需要选择能正常接收验证码的域名邮箱(
注意:使用了第三方如QQ企业邮箱等,在页面是不能显示出来的)。填写完使用者的相关信息(像城市名、街道名等等尽量使用英文,中文可能会出错)后,Namecheap会发一封有验证码的邮件到你选择的域名邮箱中,进入邮箱点击“here”按钮,然后输入验证码即可完成SSL订单。这时,Namecheap会把PositiveSSL证书文件通过邮件发送到自己的邮箱发送证书邮件。
三、配置服务器中Nginx文件
SSL证书提供商会在邮件中提供我们需要的四个.crt文件:
域名证书文件typecodes_com.crt、
COMODORSADomainValidationSecureServerCA.crt、
COMODORSAAddTrustCA.crt、
根证书文件AddTrustExternalCARoot.crt,把它们导入到web服务器中的某个目录,例如/etc/nginx/ssl。一般情况下,直接用域名证书typecodes_com.crt即可受到浏览器(例如chrome等)的信任。但是为了避免在火狐firefox中出现“此连接不受信任”的警告,需要按照以下顺序合并所有证书文件,然后重新生成一个.crt文件:
[root@typecodes ssl]# cat typecodes_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > typecodes_last.crt
最后,我们需要修改Nginx的配置文件(/etc/nginx/conf.d/default.conf)来让Nginx启用https协议,示例如下:
###### 开始配置Nginx文件,支持http协议跳转到https协议 [root@typecodes conf.d]# vi default.conf ###### 新增一个“server”,保留原80端口,并强制将http协议转换到https协议 server { listen 80; server_name www.typecodes.com; rewrite ^(.*) https://$server_name$1 permanent; } ###### 在原“server”中,启用支持https协议的443端口,并配置相关信息 server { listen 443; server_name www.typecodes.com; ssl on; # 最后新生成.crt文件 ssl_certificate /etc/nginx/ssl/typecodes_last.crt; # 最开始生成.key文件 ssl_certificate_key /etc/nginx/ssl/typecodes.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM; #Disables all weak ciphers ssl_protocols SSLv3 TLSv1; #enables SSLv3/TLSv1, but not SSLv2 which is weak and should no longer be used. ssl_prefer_server_ciphers on; ***************省略其它不变的部分**************** } ###### 重启Nginx服务 [root@typecodes conf.d]# service nginx restart
这时访问www.typecodes.com或者typecodes.com都会自动跳转到https://www.typecodes.com了。因此,大功告成!
四、解决可能出现的问题
4.1 SSL证书在Firefox浏览器中出现警告
解决方法是如上面的操作所示,将所有证书文件合并即可。
4.2 解决"Chain issues - Contains anchor"的问题
如果在ssllabs.com中进行SSL效果测试时,发现"Chain issues - Contains anchor"的问题,那么可以尝试不要把
AddTrustExternalCARoot.crt证书内容添加到最终合成的证书typecodes_last.crt中去。
[root@typecodes ssl]# cat typecodes_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > typecodes_last.crt
4.3 密钥.key文件的密码弄错
nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/typecodes.key") failed (SSL: error:28069065:lib(40):UI_set_result:result too small:You must type in 4 to 1024 characters error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib) nginx: configuration file /etc/nginx/nginx.conf test failed
在生成密钥.key文件时,需要重复输入相同的密码两次,如果在接下来的步骤中输入错误的密码,就会出现上面这个错误。所以,我们最好执行上面推荐的步骤,去掉密码!
4.4 crt域名证书和密钥.key文件不匹配,则需要重头开始操作:
nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/inx/decryptedprivate.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch) nginx: configuration file /etc/inx.conf test failed
我们可以通过
https://www.sslchecker.com/matcher进行匹配验证:把邮件中的域名证书
typecodes_com.crt中的内容粘贴到第一个栏目中,把最初生成的
typecodes.key中的内容填写到第二栏中,然后点击“Match”按钮,结果显示如图绿色提示“CSR
match SSL” 则说明证书和密钥匹配。当然把之前生成的 typecodes.csr 中的内容粘贴到第二栏中也是匹配的。
五、针对typecho博客的数据库改动
操作数据库前,记得先备份!
5.1 更改博客url地址
select * from typecho_options where name = 'siteUrl'; update typecho_options set value = 'https://www.typecodes.com' where name = 'siteUrl';
5.2 更改博客作者的地址以及新浪SCS图片的路径
select * from typecho_users where name = 'user_name'; update typecho_users set url = 'https://www.typecodes.com' where name = 'user_name'; UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'http://www.typecodes.com/usr/uploads/','https://o3cex9zsl.qnssl.com/');
相关文章推荐
- Linux下的压缩zip,解压缩unzip命令详解及实例
- Centos查看端口占用情况和开启端口命令
- 嵌入式linux:error while loading shared libraries的解决方法
- Linux hostname主机名配置及修改
- Linux基本的vi命令
- Linux OS基本命令和操作
- gdb+gdbserver调试arm-linux程序
- Linux多线程——异步
- linux图形化界面访问
- Linux下显示IP地理位置信息的小工具-nali
- Linux环境高级编程--介绍
- Linux下Rsync+sersync实现数据实时同步[转]
- linux 文件权限
- Centos6.7下 samba服务器的搭建与配置(share共享模式)
- centos 7 中文输入法的安装和启用
- 实验六:分析Linux内核创建一个新进程的过程
- Linux——多线程
- Linux学习历程(持续更新整理中)
- (OK) cBPM-CentOS——Criteria.xml——create-database
- Linux和windows、Mac回车换行区别