由题意可得:y′=-3x2+3,令y′=-3x2+3>0,得-1<x<1,所以函数f(x)=-x3+3x-1在(-1,1)上递增,在(-∞,-1),(1,+∞)上递减,所以当x=1时,函数有极大值f(1)=-13+3×1-1=1,当x=-1时,函数有极小值f(-1)=-(-1)3+3×(-1)-1=-3故答案为 D.