升东运维是一家专业从事Linux/Freebsd Unix/Windows平台网站维护业务的公司,专业提供Linux(CentOS Redhat Ubuntu等),Unix(Freebsd),Nginx,Apache等系统及网站维护,七年从业经验

freebsd下配置lets-encrypt ssl证书第二种方式

六月 8th, 2017

1.先配置好nginx well-known访问

server { 
 ...
 location /.well-known/ {
 alias /wwwroot/ppkj.net/.well-known/;
 }
 ...
}

 

2.安装git ,安装virtualenv, 安装python(如果没有),邮箱和域名改成自己的

cd /usr/ports/devel/git && make install clean

git clone https://github.com/letsencrypt/letsencrypt  /disk/letsencrypt

cd /usr/ports/devel/py-virtualenv && make install clean

cd /disk/letsencrypt

./letsencrypt-auto certonly –webroot -w /wwwroot/ppkj.net/ -d www.ppkj.net –email admin@gmail.com –agree-tos –no-bootstrap

 

3.配置证书 ,生成后的key和密钥位置/etc/letsencrypt/live/www.ppkj.net/

server { 
 listen 443 ;
 ssl on;
 ssl_certificate /etc/letsencrypt/live/www.ppkj.net/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/www.ppkj.net/privkey.pem;
... 
}

4. 重启nginx即可

自动续期命令:(自行添加到计划任务)

/disk/letsencrypt/letsencryptauto renew 

配置免费ssl证书Lets Encrypt并自动更新

二月 16th, 2017

Lets Encrypt证书配置快捷,无需登录网站验证域名邮箱等操作,有效期为3月(中小网站域名频率过快,为了保证ssl安全),自动更新十分方便,强烈推荐!中小网站福音.

方法步骤如下:

1.创建一个目录,获取自动配置脚本

mkdir /root/letsencrypt &cd /root/letsencrypt
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf 
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh 
chmod +x letsencrypt.sh

2.编辑letsencrypt.conf 替换里面的域名为自己的域名,DOMAIN_DIR为网站所在目录绝对地址,用于生成.well-known目录内的验证文件,必须正确配置

# only modify the values, key files will be generated automaticly.
ACCOUNT_KEY=”letsencrypt-account.key”
DOMAIN_KEY=”ssl.ppkj.net.key”
DOMAIN_DIR=”/wwwroot/ppkj.net/
DOMAINS=”DNS:ssl.ppkj.net,DNS:ssl2.ppkj.net
#ECC=TRUE
#LIGHTTPD=TRUE

3.创建目录.well-known,并添加nginx位置,或者允许直接访问,此处为非ssl加密的普通http访问,必须保证能够正常访问,否则无法生成证书

server { 
 ...
 location /.well-known/ {
 alias /wwwroot/ppkj.net/.well-known/;
 }
 ...
}

4.配置ssl访问,配置后重启nginx:   service nginx restart

server { 
 listen 443 ;
 ssl on;
 ssl_certificate /root/lets-encrypt/ssl.chained.crt;#chained 为合并后的证书
 ssl_certificate_key /root/lets-encrypt/ssl.ppkj.net.key;
... 
}

5.生成证书,注意必须是bash环境,freebsd需要先安装bash及python,并且不要用sh letsencrypt.sh方式执行(默认csh)

./letsencrypt.sh ./letsencrypt.conf

运行后会提示生成成功,如果.well-known里面的文件无法正常访问则会失败.检查后重新运行生成即可.

6.每月自动更新证书的脚本,也可以设置为2个月运行一次

0 0 1 * * /root/letsencrypt/letsencrypt.sh /root/letsencrypt/letsencrypt.conf >> /var/log/lets-encrypt.log 2>&1

 

如果一直创建失败 尝试修改dns为阿里云dns

/etc/resolve.conf

nameserver 100.100.2.136
nameserver 100.100.2.138

Android x86 下dalvikvm执行java程序 报错及解决办法

八月 3rd, 2015

Android 4.22 X86  vmware.

root以后(after rooted)

dalvikvm 下执行java Helloworld.java (32bit jvm 1.6)程序

class Helloworld {
      public static void main(String[] args) {
            System.out.println(“Hello World!”);
      }
}

CMD下执行

javac Helloworld.java 得到 Helloworld.class

D:\Program Files\AndroidSDK\build-tools\19.1.0\dx.bat –dex –output=Helloworld.dex Helloworld.class 得到Helloworld.dex

上传到(upload to) vmware android x86 /sdcard

adb shell dalvikvm -cp /sdcard/Helloworld.dex Helloworld
root以后如果/data/dalvik-cache 权限不足会报错:

Unable to locate class ‘Helloworld’
java.lang.NoClassDefFoundError: Helloworld
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn’t find class “Helloworld” on path: DexPathList

shell 里面修改下权限 chmod 777 /data/dalvik-cache
或者 or:(android4.2+)
adb shell ANDROID_DATA=/sdcard dalvikvm -cp /sdcard/Helloworld.dex Helloworld (dex要用绝对路径)

 

Chrome无法打开网页及设置解决办法

六月 28th, 2015

从win7升级到win10后发现chrome无法运行了,即使完全卸载再重装也无法解决,具体表现为打开后无法打开任何页面,浏览器设置也无法打开

遇到此种顽固情况需要检查下软件兼容性问题,一般是由于一些保护软件导致的,比如支付宝安全软件,360安全软件,解决办法如下:

1.桌面图标里加上启动参数 -no-sandbox 然后启动浏览器

2.输入chrome://conflicts/ 检查软件排斥情况 一般会列举出一些自己安装的软件 如安全卫士网盾,svn,支付宝控件,将这些控件最可疑的卸载后即可,本人是支付宝导致无法打开网页

卸载后即可完全正常

如果使用了上述方法以及其他可能的方法还是无法正常打开网页启用沙箱,那么还可以尝试删除自己安装的第三方字体 windows->controll panel -> fonts(delete all)

 

 

阿里云香港节点今天持续13小时故障恢复

六月 21st, 2015

阿里云香港节点今天9点30分左右突然全线崩溃,截止晚间22点左右逐渐恢复,历时13小时左右.期间有部分客户数据损毁,游戏服务器日志回滚.阿里云客服在下午6点左右曾经发短信告知部分客户已恢复,后又发短信告知回复错误.此次崩溃导致阿里云大量客户损失惨重.由于很多客户对阿里云技术过度信赖,未作文件同步及实时数据备份导致宕机期间业务无法恢复.部分涉及外贸的客户更是损失巨大,阿里云对此给出的赔偿是100倍时常代金券,然而很多客户对此并不满意,宕机13个小时,对于宣传99.99%可用性的阿里云来说,是一个巨大的打击.由此可见,云服务即使是在相当成熟的阿里云也是不能保证可靠性的,一旦发生宕机事故,客户过度依赖云服务器将会导致损失惨重. 对此客户最好选择异地实时备份数据以保证数据安全.

www.ppkj.net

 

ali21

ali2

QQ截图20150621224919

freebsd gcc编译错误解决error: unknown type name ‘u_int32_t’

一月 26th, 2015

freebsd下gcc编译程序可能会出现如下错误

error: unknown type name ‘u_int32_t’

在文件头加入如下即可

#include <sys/types.h>

 

 

 

nginx php升级后 socket方式502错误解决办法

一月 22nd, 2015

nginx php升级php5.3.29后 socket方式会导致网站出现502错误打不开,原因是因为nginx无法操作/tmp/php-cgi.sock(例),

需要在php-fpm.conf里面取消权限部分的注释,改成如下即可,然后重启php进程

listen.owner = www
listen.group = www
listen.mode = 0666

linux/unix下svn自动更新出错解决

十月 20th, 2014

linux/unix下svn自动更新出错解决:

post-commit hook failed (exit code 255) with no output.

linux/unix下要实现svn提交后自动更新到测试服务器,添加hook即可/usr/svn/mulu/hooks/post-commit 不带后缀

设置权限为可执行

chmod 777 /usr/svn/baoming/hooks/post-commit

 

#!/bin/sh
WEB=”/usr/home/mulu”
SVN=”/usr/local/bin/svn”
$SVN update $WEB –username ppkj.net –password ppkj.net || exit 1
exit 0

其中的exit不可缺失,否则会报错

转载请注明www.ppkj.net

 

freebsd9.2配置postfix smtp认证功能

二月 22nd, 2014

1:卸载sendmail

cd /usr/ports/mail/sendmail

make deinstall

make clean

 

2:安装postfix

cd /usr/ports/mail/postfix

make config #开启pcre,SASL2,BDB etc..

make install clean

QQ截图20140222160637

安装时候会同时安装cyrus-sasl2库,选择配置时候选上BDB等..

QQ截图20140222160959

 

安装时还会提示是否替换系统默认的mail程序,此处替换,因为已经卸载sendmail

Would you like to activate Postfix in /etc/mail/mailer.conf [n]? Y

3:如果没有提示安装cyrus-sasl2库,则需要自己手动安装,配置同上图

cd /usr/ports/security/cyrus-sasl2

make install clean

4.安装cyrus-sasl2-saslauthd程序,选择配置时候选上BDB

cd /usr/ports/security/cyrus-sasl2-saslauthd

make install clean

QQ截图20140222161848

添加一个系统用户 test,测试认证是否正常

testsaslauthd -u test -p  pasword  命令测试时,失败提示: 0:NO “authentication failed” 成功则提示0: OK “Success.”

 

文章原址 http://www.ppkj.net/2014/02/22/freebsd9-2%E9%85%8D%E7%BD%AEpostfix-smtp%E8%AE%A4%E8%AF%81%E5%8A%9F%E8%83%BD.html

——————————–

安装完成后加入启动项

ee /etc/rc.conf

加入

saslauthd_enable=”YES”
postfix_enable=”YES”

5.编辑/usr/local/etc/postfix/main.cf 最下面加入

#本机邮件服务器域名,在域名里做一下mx解析,指向本机的公网ip,避免被识别为垃圾
myorigin = mail3.me.com
#开启smtp
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
#白名单ip,可以不用验证密码
mynetworks = 168.100.189.0/28, 127.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks permit_inet_interfaces permit_sasl_authenticated permit_mx_backup reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_local_domain = $myhostname

6.打开目录 /usr/local/lib/sasl2/里面有个Sendmail.conf,重要!

cp Sendmail.conf smtpd.conf

生成/etc/aliases.db,运行 重要!

 newaliases

 

 

 

Freebsd 双硬盘无法启动原因之一

五月 30th, 2013

Freebsd不会自动尝试寻找主硬盘之外的可引导硬盘,所以如果之前是单硬盘,后来又添加了新硬盘,依然无法从新硬盘启动,如果格式化了老硬盘,表现就是双硬盘后无法启动,此时需要在BIOS中调整primary master 为主硬盘即可,以下是官方手册中所述:

http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/install-steps.html

当您在系统上安装配置 FreeBSD 之前, 有一个重要的事情一定要注意,尤其是当您有多个硬盘的时候。

在 pc 架构,当您跑像 MS-DOS® 或 Microsoft® Windows® 这种跟 BIOS 相关的操作系统的时候,BIOS 有能力改变正常的磁盘顺序, 然后这些操作系统会跟着 BIOS 做改变。这让使用者不一定非要有所谓的 “primary master” 硬盘开机。 许多人发现最简单而便宜备份系统的方式就是再去买一块一模一样的硬盘, 然后定期将数据从第一块硬盘复制到第二个硬盘,使用 Ghost® 或XCOPY。所以,当第一个硬盘死了, 或者是被病毒破坏,或者有坏轨道, 他们可以调整 BIOS 中的开机顺序而直接用第二块硬盘开机。 就像交换硬盘的数据线,但是无需打开机箱。

比较昂贵,配有 SCSI 控制卡的系统通常可以延伸 BIOS 的功能来让 SCSI 设备 (可达七个) 达到类似改变顺序的功能。

习惯于使用这种方式的使用者可能会感到惊讶, 因为在 FreeBSD 中并非如此。FreeBSD 不会参考 BIOS, 而且也不知道所谓的 “BIOS 逻辑磁盘对应” 是怎么回事。这会让人感觉很疑惑, 明明就是一样的硬盘而且资料也完全从另一块复制过来的, 结果却没办法像以前那样用。

当使用 FreeBSD 以前,请将 BIOS 中的硬盘开机顺序调回正常的顺序, 并且以后不要再改变。 如果一定要交换硬盘顺序, 那请用硬件的方式, 打开机箱并调整调线。